JS判断数组中是否包含某个元素(转载)
在JavaScript中,我们经常需要判断一个数组中是否包含某个指定的元素,本文将介绍几种实现该功能的方法。
方法一:使用indexOf方法
JavaScript提供了indexOf方法,该方法返回要查找的元素在数组中第一次出现的位置,如果找不到,返回-1。我们可以利用这个特性来实现判断一个数组中是否包含某个元素的功能。
let arr = [1, 2, 3, 4, 5];
let elem = 3;
if (arr.indexOf(elem) !== -1) {
console.log('包含元素' + elem);
} else {
console.log('不包含元素' + elem);
}
输出:
包含元素3
该方法的缺点是,如果数组中包含NaN元素,该方法会判断不准确,因为NaN不等于任何值,包括自身。
方法二:使用includes方法
ES6新增了includes方法,该方法返回一个布尔值,表示数组是否包含某个指定的值,该方法可以有效地解决上述问题。
let arr = [1, 2, NaN];
let elem1 = 1, elem2 = NaN;
console.log(arr.includes(elem1)); // true
console.log(arr.includes(elem2)); // true
输出:
true
true
该方法的缺点是不支持IE浏览器,需要使用polyfill或手写实现。
方法三:使用find方法
ES6还新增了find方法,该方法返回数组中符合条件的第一个元素,如果没有找到,返回undefined。我们可以利用这个特性来判断一个数组中是否包含某个元素。
let arr = [1, 2, NaN];
let elem1 = 1, elem2 = NaN;
console.log(arr.find(e => e === elem1) === elem1); // true
console.log(arr.find(e => e === elem2) === elem2); // true
输出:
true
true
该方法需要用一个回调函数来判断,相对于前两种方法稍微复杂一些。
方法四:使用some方法
some方法也需要用到回调函数,该方法返回一个布尔值,表示数组中是否存在至少一个元素满足条件。我们可以利用该方法来实现判断数组中是否存在某个元素。
let arr = [1, 2, NaN];
let elem1 = 1, elem2 = NaN;
console.log(arr.some(e => e === elem1)); // true
console.log(arr.some(e => e === elem2)); // true
输出:
true
true
该方法与find方法类似,不同之处在于some方法不会返回符合条件的元素,而是返回布尔值。
总结
本文介绍了常见的几种判断数组中是否存在某个元素的方法,包括使用indexOf、includes、find和some方法,每种方法都各有优缺点,可以针对实际需求来选择合适的方法。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:js判断数组中是否包含某个元素(转载) - Python技术站