小编典典

检查数组中是否存在元素

all

我现在用来检查的功能如下:

function inArray(needle,haystack)
{
    var count=haystack.length;
    for(var i=0;i<count;i++)
    {
        if(haystack[i]===needle){return true;}
    }
    return false;
}

有用。我正在寻找的是是否有更好的方法来做到这一点。


阅读 107

收藏
2022-03-03

共1个答案

小编典典

ECMAScript 2016 包含一种includes()专门解决该问题的数组方法,因此现在是首选方法。

[1, 2, 3].includes(2);     // true
[1, 2, 3].includes(4);     // false
[1, 2, 3].includes(1, 2);  // false (second parameter is the index position in this array at which to begin searching)

截至 2018 年 7 月,这在几乎所有 主流
浏览器中实现,如果您需要支持较旧的浏览器,可以使用polyfill

编辑:请注意,如果数组中的项目是对象,则返回 false。这是因为相似的对象在 JavaScript 中是两个不同的对象。

2022-03-03