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