JavaScript中是否有一种方法可以比较一个数组中的值,并查看它是否在另一个数组中?
类似于PHP的in_array函数?
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)
其他回答
var value = 'a';
var array = ['a', 'b', 'c'];
if(array.indexOf(value)){
// exists in array
} else {
// Not exists in array
}
有一个叫Locutus的项目,它在Javascript和in_array()中实现了PHP函数,你可以像在PHP中使用一样使用它。
用法示例:
in_array('van', myArray);
in_array(1, otherArray, true); // Forcing strict type
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;
我在SO上找到了一个很棒的jQuery解决方案。
var success = $.grep(array_a, function(v,i) {
return $.inArray(v, array_b) !== -1;
}).length === array_a.length;
我希望有人能发布一个例子,如何在下划线做到这一点。
如果你需要所有的PHP可用参数,使用这个:
function in_array(needle, haystack, argStrict) {
var key = '', strict = !!argStrict;
if (strict) {
for (key in haystack) {
if (haystack[key] === needle) {
return true;
}
}
}
else {
for (key in haystack) {
if (haystack[key] == needle) {
return true;
}
}
}
return false;
}