var arr_data = [1,2,3]
arr_data.indexOf(1)//如果存在返回值的下标,不存在返回-1
2.jquery的$.inArray()方法
$.inArray(1, arr_data)//如果存在返回值的下标,不存在返回-1
3.arr.find()
数组实例的find()用于找出第一个符合条件的数组元素。它的参数是一个回调函数,所有的数组元素依次遍历该回调函数,直到找出第一个返回值为true的元素,然后返回该元素,否则返回undefined。
注意:find()对于空数组,函数是不会执行的。find()并没有改变数组的原始值
4.arr.findIndex()返回第一个符合条件的数组元素的位置,如果所有的元素都不符合条件,则返回-1.
注意:find(),findIndex()弥补了index的不足:(即判断NAN)
[NaN].indexOf(NaN) // -1
[NaN].findIndex(y =>Object.is(NaN, y))
5.最常见的就是 for和if 的组合
注意: 这里forEach return false 是阻止不了循环的行为;
var arr = [1, 2, 3, 4, 5, 6]
方法一: indexOf (常用)
if (arr.indexOf(2) !== -1) { console.log("包含2") }
方法二: find() 该方法用于查找符合条件的第一个元素,如果找到了,返回这个元素,否则,返回undefined
if (arr.find(item =>item === 2)) { console.log("包含2") }
方法三: findIndex() 和find()类似,也是查找符合条件的第一个元素,不同之处在于findIndex()会返回这个元素的索引,如果没有找到,返回-1
if (arr.findIndex(item =>item === 2) !== -1) { console.log("包含2") }
方法四: some() 查找复合条件的元素, 如果查找到返回true, 反之false
if (arr.some(item =>item === 2) { console.log("包含2") }
方法五: 循环遍历 如map, forEach, if()等等, 此处只用forEach举例
aa.forEach(item =>{if (item === 2) {console.log("包含2")}})