JavaScript - Difference of two arrays



Compare two arrays and return a new array with any items only found in one of the two given arrays, but not both.In other words, return the symmetric difference of the two arrays.


Note:
You can return the array with its elements in any order.



Solution 1 Basic approach


function diffArray(arr1, arr2) {
    var newArr = [];

    function newFnc(newArr1, newArr2) {
        for (var i = 0; i < newArr1.length; i++) {
            if (newArr2.indexOf(newArr1[i]) < 0) {
                newArr.push(newArr1[i]);
            }
        }
    }
    newFnc(arr1, arr2);
    newFnc(arr2, arr1);

    return newArr;
}
console.log(diffArray(["diorite", "andesite", "grass", "dirt", "pink wool", "dead shrub"], ["diorite", "andesite", "grass", "dirt", "dead shrub"]));

Output:


[ 'pink wool' ]


Solution 2 Declarative approach


function diffArray(arr1, arr2) {
    return [...diff(arr1, arr2), ...diff(arr2, arr1)];

    function diff(a, b) {
        return a.filter(item => b.indexOf(item) === -1);
    }
}
console.log(diffArray(["diorite", "andesite", "grass", "dirt", "pink wool", "dead shrub"], ["diorite", "andesite", "grass", "dirt", "dead shrub"]));

Output:


[ 'pink wool' ]

download android app

Popular javascript Examples









codesadda.com

Codesadda.com is your home of programming solutions, tutorials, video tutorials and much more. Sign Up for our weekly newsletter to get update about new content.

Like us on Facebook | Connect with us on LinkedIn | Subscribe our Channel on Youtube