ECMAScript 2017:使用 Array.includes 更容易地查询元素

在 JavaScript 中,查询一个数组中是否包含某个元素通常需要使用 Array.indexOf() 方法,该方法返回元素在数组中的下标,如果不存在则返回 -1。不过在 ECMAScript 2016 中,新增了一个更加方便的方法:Array.includes()

使用 Array.includes() 方法

Array.includes() 方法用于判断一个数组是否包含某个元素,它的语法如下:

array.includes(valueToFind[, fromIndex])

其中,valueToFind 是要查找的值,fromIndex 是可选的起始位置,默认值为 0。如果数组中包含该值,则返回 true,否则返回 false

下面是一个示例:

const fruits = ['apple', 'banana', 'orange'];
console.log(fruits.includes('banana')); // true
console.log(fruits.includes('grape')); // false

与 Array.indexOf() 的比较

Array.indexOf() 方法相比,Array.includes() 更加简洁明了。使用 Array.indexOf() 方法时,需要判断返回值是否等于 -1,而 Array.includes() 方法直接返回布尔值。

下面是一个使用 Array.indexOf() 方法的示例:

const fruits = ['apple', 'banana', 'orange'];
if (fruits.indexOf('banana') !== -1) {
  console.log('包含 banana');
} else {
  console.log('不包含 banana');
}

使用 Array.includes() 方法可以让代码更加简洁:

const fruits = ['apple', 'banana', 'orange'];
if (fruits.includes('banana')) {
  console.log('包含 banana');
} else {
  console.log('不包含 banana');
}

使用 Array.includes() 的注意事项

需要注意的是,Array.includes() 方法是区分类型的。例如,如果数组中包含数值类型的元素 1,使用 '1' 作为参数调用该方法会返回 false。因此,在使用该方法时需要注意类型的匹配。

另外,Array.includes() 方法在 IE 中不被支持,如果需要兼容旧版本的浏览器,需要使用 polyfill 进行兼容处理。

总结

Array.includes() 方法是 ECMAScript 2016 中新增的方法,用于判断一个数组中是否包含某个元素。与 Array.indexOf() 方法相比,它更加简洁明了,使用起来更加方便。在使用该方法时需要注意类型的匹配,以及对旧版本浏览器的兼容处理。

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


纠错
反馈