在 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