Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

jquery function to intersect arrays by the same elements [duplicate]

Does exists a JS or jQuery function to intersect 2 arrays, for example:

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

sure I can make it manually, but maybe exists a shorter way.

like image 667
IgorCh Avatar asked Jul 23 '13 08:07

IgorCh


2 Answers

Since you have jQuery tag:

$(array1).filter(array2);

Or:

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

Or (not for IE8 or less):

array1.filter(function(el) {
    return array2.indexOf(el) != -1
});

Example:

> 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]
like image 143
mishik Avatar answered Nov 03 '22 23:11

mishik


This Should work

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) );

DEMO

like image 25
RONE Avatar answered Nov 03 '22 22:11

RONE