compareArrays - comparando Arrays

Compara 2 Array de manera recursiva, verifica que el valor del indice n del primer Array sea igual al valor en el mismo indice del segundo Array.

Sintaxis:
array().compareArrays(arr[, exacto]);

Parámetros:
arr: Array que se comparará con con original.
exacto: Indica si la veridicacion es exacta, si es falso, los Array se ordenan antes de ser comparados. Valor por defecto true.

Ejemplo:
//exacto
[1,2].compareArrays([2,1]); // retorna false
[1,2].compareArrays([1,2]); // retorna true

//inexacto
[1,2].compareArrays([2,1], false); // retorna true
[1,2].compareArrays([1,2], false); // retorna true


Código:
Array.prototype.compareArrays = function(arr, exacto) {
    if (this.length != arr.length) {
        return false;
    }
    if(Object.isUndefined(exacto)) {
        exacto = true;
    }
    var acmp = this.toArray();
    var bcmp = arr.toArray();
    // si se envia exacto como false, se ordenan los Arrays antes de comparar.
    if(!exacto) {
        bcmp.sort();
        acmp.sort();
    }
    for (var i = 0; i < bcmp.length; i++) {
        if (acmp[i].compareArrays) {
            // si el valor actual es un Array, se compara con el mismo metodo.
            if(!acmp[i].compareArrays(bcmp[i], exacto)) {
                return false;
            }
        } else if(acmp[i] != bcmp[i]) {
            return false;
        }
    }
    return true;
}

www.Newbie.cl