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