是否存在与 2 个数组相交的 JS 或 jQuery 函数,例如:
var array1 = [1,2,3,4,5];
var array2 = [2,4,8,9,0];
var result = someFun(array1, array2);
//result = [2,4];
当然我可以手动制作,但可能存在更短的方式。
是否存在与 2 个数组相交的 JS 或 jQuery 函数,例如:
var array1 = [1,2,3,4,5];
var array2 = [2,4,8,9,0];
var result = someFun(array1, array2);
//result = [2,4];
当然我可以手动制作,但可能存在更短的方式。
因为你有 jQuery 标签:
$(array1).filter(array2);
或者:
$.map(array1, function(el){
return $.inArray(el, array2) < 0 ? null : el;
})
或者(不适用于 IE8 或更低版本):
array1.filter(function(el) {
return array2.indexOf(el) != -1
});
例子:
> array1 = [1,2,3,4,5];
[1, 2, 3, 4, 5]
> array2 = [2,4,8,9,0];
[2, 4, 8, 9, 0]
> array1.filter(function(el) {
return array2.indexOf(el) != -1
});
[2, 4]
这应该工作
var alpha = [1, 2, 3, 4, 5, 6],
beta = [4, 5, 6, 7, 8, 9];
$.arrayIntersect = function(a, b)
{
return $.grep(a, function(i)
{
return $.inArray(i, b) > -1;
});
};
console.log( $.arrayIntersect(alpha, beta) );