JS中如何判断数组中是否包含某一元素

JavaScript010

JS中如何判断数组中是否包含某一元素,第1张

可以直接使用数组的indexOf方法来判断,如果元素存在于数组中,那么返回元素在数组中的下标值,如果不存在,那么返回-1,但是该方法在某些版本的IE中是不起作用,所以建议使用jquery的inArray方法,该方法返回元素在数组中的下标,如果不存在与数组中,那么返回-1,代码如下所示:

/**

 * 使用jquery的inArray方法判断元素是否存在于数组中

 * @param {Object} arr 数组

 * @param {Object} value 元素值

 */

 function isInArray2(arr,value){

    var index = $.inArray(value,arr)

    if(index >= 0){

        return true

    }

    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")}})

可以使用数组的indexOf()方法,如果返回值为-1则说明不存在,如果返回值为大于-1的整数,则说明存在。例如:

var arr = [1,2,3]

arr.indexOf(1) // 返回0

arr.indexOf(5) // 返回-1

附:返回值为数组中的最靠前元素在数组的位置