一尘不染

检查数组中是否存在元素[重复]

javascript

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

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

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


阅读 316

收藏
2020-05-01

共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月开始,如果您需要支持IE,则可以在polyfill中使用几乎所有
主流 浏览器。

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

2020-05-01