JavaScript 中数组的 includes() 介绍和使用
Array#includes()
方法返回 true
如果数组包含给定元素,或者 false
否则。
const arr = ['a', 'b', 'c'];
arr.includes('b'); // true
arr.includes('z'); // false
arr.includes(1); // false
平等比较
includes()
方法使用 SameValueZero 算法 来确定两个值是否相等。 对于几乎所有情况,SameValueZero 等同于 严格相等使用 ===
,尤其 includes()
不 进行 任何类型的强制转换。
const arr = ['1', '2', '3'];
arr.includes('1'); // true
arr.includes(1); // false
includes()
仅当两个对象是相同的引用时才将它们视为相等的:
const obj1 = { name: 'Jean-Luc Picard' };
const obj2 = { name: 'Jean-Luc Picard' };
const arr = [obj1];
arr.includes(obj1); // true
arr.includes(obj2); // false
唯一的区别是 SameValueZero 如何处理 NaN
,在 JavaScript 中, NaN !== NaN
,然而 includes()
能正确找到 NaN
和 Number.NaN
在一个数组中。
const arr = [NaN];
arr.includes(NaN); // true
arr.includes(Number.NaN); // true
arr[0] === NaN; // false
环境支持
includes()
方法是在 ES2016 中引入的,这使它成为一个相对较新的特性。特别是没有版本的 Internet Explorer 支持 includes()
,如果您希望您的 JavaScript 在 Internet Explorer 或 5.0.0 之前的 Node.js 版本中运行,您应该使用 indexOf()
,它享有更好的浏览器支持并且 NaN
的判断。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
上一篇: JavaScript 向数组中添加元素
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论