JSFiddle - React, Tailwind, and code Playground

by Deepak Anand

JavaScript

// recursive function to compare arrays 

function compareArray(array1, array2) {     
    // if the other array is a falsy value, return
    if (!array1 || !array2)
        return false;

    // compare lengths - can save a lot of time 
    if (array1.length != array2.length)
        return false;

    for (var idx = 0, arrayLen = array1.length; idx < arrayLen; idx++) {
        // Check if we have nested arrays
        if (array1[idx] instanceof Array && array2[idx] instanceof Array) {
            // recurse into the nested arrays
            if (compareArray(array1[idx],array2[idx]) === false)
                return false;       
        }           
        else if (array1[idx] !== array2[idx]) { 
            // Warning - two different object instances will never be equal: {x:20} != {x:20}
            return false;   
        }           
    }       
    return true;
}   

var array1 = [[1, 2, 3], [ 4, 5, 6]],
    array2 = [[1, 2, 3], [ 4, 5, 6]];
    array3 = [[4, 5, 6], [ 1, 2, 3]];

console.log(compareArray(array1, array2));
console.log(compareArray(array1, array3));

var	megaArray = [[[1, 2, 3], [ 4, 5, 6], [7, 8, 9]],
                 [[1, 2, 3], [ 4, 5, 6]], 
                 [[9, 8, 7], [ 6, 5, 4], [3, 2, 1]], 
                ];


for(var idx = 0, megaArrayLen = megaArray.length; idx < megaArrayLen; idx++){     
     var keyFound = compareArray(megaArray[idx], array1);
     if(keyFound === true){
         console.log(idx);
     } else {
         console.log(-1);
     }
    
}