jquery函数通过相同的元素交叉数组

Igo*_*rCh 5 javascript arrays jquery

是否存在与两个数组相交的JS或jQuery函数,例如:

var array1 = [1,2,3,4,5];
var array2 = [2,4,8,9,0];
var result = someFun(array1, array2);
//result = [2,4];
Run Code Online (Sandbox Code Playgroud)

我确定我可以手动制作,但可能存在更短的方式.

mis*_*hik 30

既然你有jQuery标签:

$(array1).filter(array2);
Run Code Online (Sandbox Code Playgroud)

要么:

$.map(array1, function(el){
  return $.inArray(el, array2) < 0 ? null : el;
})
Run Code Online (Sandbox Code Playgroud)

或者(不适用于IE8或更低版本):

array1.filter(function(el) {
    return array2.indexOf(el) != -1
});
Run Code Online (Sandbox Code Playgroud)

例:

> 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]
Run Code Online (Sandbox Code Playgroud)

  • 从未意识到“$(array1).filter(array2)”可以进行纯数组操作。这有帮助! (2认同)