Comparar las llaves de un array contra las llaves de otro array y crear un nuevo array con las llaves que sean diferentes en NodeJs (Solucionado)

Higarigaoka - Odaiba, Sin comentarios
Hola,
A continuación les comparto una función en Node encargada de comparar las llaves o parámetros de dos array, recurriéndolos con un for para validar si son iguales o diferentes y crea y retorna un nuevo array con los campos o llaves que hagan falta.


Es de aclarar que es en NodeJs y se invoca de la siguiente forma:

var comparisonAnswerArray = comparateArray(arrayInitial, arrayFinal);
console.log("Se compararon los arrays correctamente y la cantidad de llaves de
diferencia entre los arrays es:");
console.log(comparisonAnswerArray.length);

Y la función es así:

/**
* Funcion encargada de comparar las llaves o parametros de dos array, validar si son
* iguales o diferentes y retornar un nuevo array con los campos o llaves que hagan
* falta.
* @param {*} arrayInitial Define el array inicial a evaluar
* @param {*} arrayFinal Define el array contra el cual se va a evaluar el array
* inicial
* @returns un array con las llaves que hagan falta para evaluar
*/
function comparateArray(arrayInitial, arrayFinal) {

console.log("Ingreso a la funcion.");

// array para almacenar la lista de valores que faltan en el arrayInitial
var differentialArray = [];
for (var i = 0; i < arrayInitial.length; i++) {
var igual = false;
for (var j = 0; j < arrayFinal.length & !igual; j++) {
if(arrayInitial[i] == arrayFinal[j] && arrayInitial[i] == arrayFinal[j]){
igual = true;
}

}

// almacenar en un nuevo array los campos del arrayInitial que hagan falta
if(!igual){
differentialArray.push(arrayInitial[i]);
}

}

// obtener los campos que no se estan enviando en el arrayInitial contra el
// arrayFinal
if(differentialArray.length > 0){
console.log("Se encontraron las siguientes Keys de diferencia:");
console.log(differentialArray);
return differentialArray;
//return JSON.stringify(myArray);
} else {
console.log("Las llaves principales del arrayInitial y del arrayFinal
son iguales.");
console.log("Salio correctamente de la funcion.");
return [];
}

}

0 comentarios :

Publicar un comentario