我现在用来检查的功能如下:
function inArray(needle,haystack) { var count=haystack.length; for(var i=0;i<count;i++) { if(haystack[i]===needle){return true;} } return false; }
有用。我正在寻找的是是否有更好的方法来做到这一点。
ECMAScript 2016 包含一种includes()专门解决该问题的数组方法,因此现在是首选方法。
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 中是两个不同的对象。