在ES6中,JavaScript语言引入了Array.prototype.includes()方法。这个方法很快就成为了开发者的喜爱。继承了ES6的思路,ES8的Array.prototype.includes()方法仍然是一个非常有用的数组操作方法。
在ES8中,Array.prototype.includes()方法被添加了一些新的特性和扩展,可以更加方便地处理数组操作。
基本语法
Array.prototype.includes()方法用于判断一个数组是否包含某个特定的元素,返回一个布尔值。
array.includes(value)
其中,array表示要被检查的数组,value表示要查找的值。如果找到这个值,返回值为true,否则返回false。
这个方法非常容易使用,简单便捷。
下面,我们来看一些实际使用的例子。
使用示例
查找数组中的元素
const arr = [1, 2, 3, 4, 5]; console.log(arr.includes(2)); // true console.log(arr.includes(0)); // false
上面的代码,定义了一个包含5个元素的数组arr。使用includes()方法查找数字2,返回结果为true;查找数字0,返回结果为false。
查找一个有空值的数组
const arr = [1, undefined, 2, null]; console.log(arr.includes(undefined)); // true console.log(arr.includes(null)); // true console.log(arr.includes(0)); // false
上面的代码中,数组arr包含一个undefined和一个null。使用includes()方法检查是否有undefined和null,返回结果均为true。查找数字0,返回结果为false。
反向查找数组中的元素
const arr = [1, 2, 3, 4, 5]; console.log(arr.includes(2, -1)); // false console.log(arr.includes(2, -2)); // true
上面的代码,数组arr包含5个元素,其中数字2重复了一次。使用includes()方法查找数字2,从倒数第一位开始查找,返回结果为false;从倒数第二位开始查找,返回结果为true。
检查对象是否在数组中
const arr = [{id: 1}, {id: 2}, {id: 3}]; const obj = {id: 2}; console.log(arr.includes(obj)); // false
上面的代码中,定义了一个包含3个对象的数组arr。使用includes()方法查找一个对象,返回结果为false。这是因为数组中的对象不是一个引用,它们的地址不同。
注意事项
1. 参数的使用
和Array.prototype.indexOf()方法不同,includes()方法是可以使用NaN查找的。
2. 向前向后查找
includes()方法支持从头开始和从尾开始查找。
3. 查找对象
当数组元素为对象时,includes()方法比较的是对象的引用,而不是对象的键值。
4. 兼容性问题
虽然这个方法在ES6中就被引入了,但在ES8中才加入了上述的扩展功能,所以一些旧的浏览器并不支持。
总结
尽管看起来Array.prototype.includes()很简单,实际上它有很强大的功能和应用。我们可以使用它高效地处理数组操作,并且还能够从中获取深刻的理解。
在学习和使用中,需要特别注意以上提到的一些细节和注意事项,为此在熟练掌握API的使用之后,我们可以更好地利用它来提高自己的工作效率。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/645cb228968c7c53b0f202be