How to know if two arrays have the same values How to know if two arrays have the same values arrays arrays

How to know if two arrays have the same values


If your array items are not objects- if they are numbers or strings, for example, you can compare their joined strings to see if they have the same members in any order-

var array1= [10, 6, 19, 16, 14, 15, 2, 9, 5, 3, 4, 13, 8, 7, 1, 12, 18, 11, 20, 17];var array2= [12, 18, 20, 11, 19, 14, 6, 7, 8, 16, 9, 3, 1, 13, 5, 4, 15, 10, 2, 17];if(array1.sort().join(',')=== array2.sort().join(',')){    alert('same members');}else alert('not a match');


If you want to check only if two arrays have same values (regardless the number of occurrences and order of each value) you could do this by using lodash:

_.isEmpty(_.xor(array1, array2))

Short, simple and pretty!


Sort the arrays and compare their values one by one.

function arrayCompare(_arr1, _arr2) {    if (      !Array.isArray(_arr1)      || !Array.isArray(_arr2)      || _arr1.length !== _arr2.length      ) {        return false;      }        // .concat() to not mutate arguments    const arr1 = _arr1.concat().sort();    const arr2 = _arr2.concat().sort();        for (let i = 0; i < arr1.length; i++) {        if (arr1[i] !== arr2[i]) {            return false;         }    }        return true;}