javascript - 在 JavaScript 中如何检查数组是否包含值?

标签 javascript arrays algorithm time-complexity javascript-objects

找出 JavaScript 数组是否包含值的最简洁、最有效的方法是什么?

这是我知道的唯一方法:

function contains(a, obj) {
    for (var i = 0; i < a.length; i++) {
        if (a[i] === obj) {
            return true;
        }
    }
    return false;
}

有没有更好、更简洁的方法来实现这一点?

这与 Stack Overflow 问题密切相关 Best way to find an item in a JavaScript Array? 它解决了使用 indexOf 在数组中查找对象的问题。

最佳答案

现代浏览器有 Array#includes ,它完全做到了这一点,并且 is widely supported除 IE 之外的所有人:

console.log(['joe', 'jane', 'mary'].includes('jane')); // true

您还可以使用Array#indexOf ,这不太直接,但不需要针对过时的浏览器进行填充。

console.log(['joe', 'jane', 'mary'].indexOf('jane') >= 0); // true

<小时/>

许多框架也提供类似的方法:

请注意,某些框架将其实现为函数,而其他框架则将该函数添加到数组原型(prototype)中。

关于javascript - 在 JavaScript 中如何检查数组是否包含值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40976417/

相关文章:

algorithm - 从树中选择 K 个节点的方法数,如果选择节点,则必须选择节点的父节点

algorithm - Arduino:将数据存储在EEPROM中的轻量级压缩算法

javascript - 嵌入带有侧边栏列表可见的 YouTube 播放列表插件

PHP 查找最小数字/日期的快捷方式

c - 程序无法从文本文件中正确读取

mysql - 数组 - StripTags

c# - 如何要求确认删除 list 项目?

javascript - 再次点击按钮后如何显示警报?

php - javascript验证数据库中的表单值

algorithm - 随机二分搜索的运行时间