Comprobar si el contenido de dos arrays son iguales

Código Javascript

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