Array.prototype.includes 正式加入 ES7 标准,比 indexOf 好用的方法

简介

Array.prototype.includes() 是一个用来判断一个数组是否包含一个特定元素的数组方法,如果包含则返回 true,否则返回 false。该方法已经在 ES7 中被正式纳入标准。

与之前使用的 indexOf() 方法相比,includes() 更加直观易懂、简单易用,同时能够处理 NaN 和 -0,不需要额外的处理逻辑。

用法

includes() 方法的语法如下:

arr.includes(searchElement[, fromIndex])

其中,arr 表示需要检索的数组,searchElement 表示需要查找的元素,fromIndex 是可选的,表示从数组中的哪个元素开始查找。

以下是一个简单的示例:

const arr = [1, 2, 3, 4];

console.log(arr.includes(2)); // true
console.log(arr.includes(5)); // false

需要注意的是,includes() 方法是区分数据类型的。也就是说,如果需要在数组中查找一个字符串,需要传入一个字符串,而不是一个数值。

const arr = ['apple', 'banana', 'pear'];

console.log(arr.includes('banana')); // true
console.log(arr.includes(1)); // false

另外,includes() 方法支持传入第二个参数 fromIndex,该参数可以指定从哪一个下标开始查找。

const arr = [1, 2, 3, 4, 5];

console.log(arr.includes(1)); // true
console.log(arr.includes(1, 1)); // false
console.log(arr.includes(2, 2)); // true

总结

Array.prototype.includes() 相比 indexOf(),更加直观易懂、简单易用,同时能够处理 NaN 和 -0,不需要额外的处理逻辑。在编程中,我们可以优先考虑使用 includes() 方法。

// 判断一个元素是否在数组中
const arr = [1, 2, 3, NaN];
if (arr.includes(2)) {
    console.log('2 in arr');
}

// 判断一个元素是否不存在于数组中
if (!arr.includes('hello')) {
    console.log('hello not in arr');
}

// 从指定的下标开始查找,判断一个元素是否在数组中
if (arr.includes(NaN, 3)) {
    console.log('NaN in arr after index 3');
}

参考

来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/65926296eb4cecbf2d732611


纠错反馈