nicklasos
12/5/2013 - 9:07 AM

Array intersect.

Array intersect.

// array_multi_intersect([[1, 2, 3], [2, 3, 4], [0, 2, 3, 8]]); => [2, 3]
function array_multi_intersect(arr)
{
    var firstArr = [],
        totalArr = [],
        i,
        j,
        k;

    if (arr.length < 2) {
        return arr;
    }

    firstArr = arr[0];

    for (i = 0; i < firstArr.length; i += 1) {
        for (j = 1; j < arr.length; j += 1) {
            if (arr[j].indexOf(firstArr[i]) === -1) {
                firstArr[i] = false;
                break;
            }
        }
    }

    for (k = 0; k < firstArr.length; k += 1) {
        if (firstArr[k]) {
            totalArr.push(firstArr[k]);
        }
    }

    return totalArr;
}