Javascript – Arrays – Iguales
Función que recorre dos arrays a la vez, comparando cada valor e indicando al final si los dos son iguales.
Función recursiva ya que puede tener como elemento del array a otro array.
let HelperArray = (function () {
return {
/**
* Comprueba si dos arrays son iguales, puede tener sub arrays.
* Recursivo.
*
* @param arr1 Array
* @param arr2 Arrat
* @returns boolean
*/
equals: function ( arr1, arr2 ) {
if ( !arr1 || !Array.isArray( arr1 ) ) {
return false;
}
if ( !arr2 || !Array.isArray( arr2 ) ) {
return false;
}
if ( arr1.length !== arr2.length ) {
return false;
}
for ( let i in arr1 ) {
if ( Array.isArray( arr1[ i ] ) &&
Array.isArray( arr2[ i ] ) ) {
if ( !this.equals( arr1[ i ], arr2[ i ] ) ) {
return false;
}
} else if ( arr1[ i ] !== arr2[ i ]) {
return false;
}
}
return true;
},
}
})();
Ejemplos de comprobaciones:
var arr1 = []; var arr2 = []; console.log( HelperArray.equals( arr1, arr2 ) ); // True arr2 = ['Primero']; console.log( HelperArray.equals( arr1, arr2 ) ); // False arr1 = [1,2, 'OK']; arr2 = [1,4, 'OK']; console.log( HelperArray.equals( arr1, arr2 ) ); // False arr1 = [1,2, 'OK']; arr2 = [1,'OK']; console.log( HelperArray.equals( arr1, arr2 ) ); // False arr1 = [1,2, ['A', 'B']]; arr2 = [1,2, ['A', 'B']]; console.log( HelperArray.equals( arr1, arr2 ) ); // True
