我现在用来检查此功能的函数如下:
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月开始,如果您需要支持IE,则可以在polyfill中使用几乎所有 主流 浏览器。
编辑:请注意,如果数组中的项目是一个对象,则返回false。这是因为相似的对象是JavaScript中的两个不同的对象。