JavaScript中是否有一种方法可以比较一个数组中的值,并查看它是否在另一个数组中?

类似于PHP的in_array函数?


当前回答

现在有了Array.prototype.includes:

includes()方法确定数组是否包含某个对象 元素,返回true或false。

var a = [1, 2, 3];
a.includes(2); // true 
a.includes(4); // false

语法

arr.includes(searchElement)
arr.includes(searchElement, fromIndex)

其他回答

带下划线的in_array的等效形式是_.indexOf

例子:

_.indexOf([3,5,8], 8);//返回索引为8的2 _.indexOf([3,5,8], 10);//返回-1,未找到

我在SO上找到了一个很棒的jQuery解决方案。

var success = $.grep(array_a, function(v,i) {
    return $.inArray(v, array_b) !== -1;
}).length === array_a.length;

我希望有人能发布一个例子,如何在下划线做到这一点。

var a = [1,2,3,4,5,6,7,8,9];

var isSixInArray = a.filter(function(item){return item==6}).length ? true : false;

var isSixInArray = a.indexOf(6)>=0;

对于Dojo Toolkit,您将使用Dojo . indexof()。看到dojo。用于文档的是indexOf,用于示例的是Bryan Forbes的Arrays Made Easy。

haystack.find(value => value == needle)

其中haystack是一个数组,needle是数组中的一个元素。如果元素未找到,则返回未定义,否则返回相同的元素。