JavaScript 中数组的 includes() 介绍和使用

发布于 2023-01-08 18:52:55 字数 1978 浏览 183 评论 0

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() 能正确找到 NaNNumber.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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

牛↙奶布丁

暂无简介

0 文章
0 评论
24 人气
更多

推荐作者

束缚m

文章 0 评论 0

alipaysp_VP2a8Q4rgx

文章 0 评论 0

α

文章 0 评论 0

一口甜

文章 0 评论 0

厌味

文章 0 评论 0

转身泪倾城

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文