在JavaScript中如何检查数组是否包含某个值?

发布时间 2023-10-13 19:36:50作者: 小满独家

内容来自 DOC https://q.houxu6.top/?s=在JavaScript中如何检查数组是否包含某个值?

在JavaScript中,最简洁、高效的方法来检查数组是否包含某个值是什么?

这是我所知的唯一方法:

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

有没有更好、更简洁的方法来完成这个任务?

这个问题与Stack Overflow上的问题 在JavaScript数组中查找项目的最好方法? 密切相关,该问题涉及到使用indexOf在数组中查找对象。


现代浏览器具有Array#includes,它确实可以做到这一点,并且除了IE之外,每个人都广泛支持它:

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

你也可以使用Array#indexOf,虽然它不太直接,但不需要为过时的浏览器提供polyfill。

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

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

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