方法一:indexOf(item,start)
Item:要查找的值;
start:可选的整数参数,缺省则从起始位子开始查找。
indexOf()
返回元素在数组中的位置,如果没有则返回-1,该方法只能查找字符串,数字等,不能查找类
或者数组
或者NaN
,如果想 查找 类 或者 数组,可以使用下面介绍的其他方法;
var arr = ['a','b','c','d'];console.log(arr.indexOf('b'));// 1console.log(arr.indexOf('ab')); // -1// 一般情况下判断元素是否存在if(arr.indexOf('查找的元素') > -1){// 元素存在}
方法二:arr.find()
arr.find()
的参数是一个回调函数,数组内所有元素会遍历这个回调函数,直到找到第一个返回值为true的元素,然后返回该元素,否则返回undefined。
find()
数组中的每一个元素都会调用一次函数,但是当条件返回true时,find()
返回符合条件的元素的位置,之后的值不会再调用函数。
var tt = {"id": 2,"name": "test",};var arr = [{"id": 1,"name": "test",},{"id": 2,"name": "test",},{"id": 3,"name": "test",}];var a=arr.find(function(value,index,arr){return value['id'] == tt['id'] && value['name'] == tt['name']});console.log(a);//{id: 2, name: "test"}, 注意:这里返回的不是true,而是返回值为true的这个元素;
方法三:array.findIndex()
findIndex()
和find()
的用法相似,find()
返回的是元素,findIndex()
返回的是第一个符合条件的数组元素的位置,如果所有元素都不符合条件则返回-1
。
findIndex()
数组中的每一个元素都会调用一次函数,但是当条件返回true时,findIndex()
返回符合条件的元素的位置,之后的值不会再调用函数。
for()
或forEach()
的方法就不讲了,遍历后if判断就行