Estoy estudiando un poco de objetos js últimamente (todavía estoy aprendiendo). Estoy atascado en un proyecto mío en el que necesito verificar si 2 objetos dentro de una matriz (de objetos) son idénticos entre ellos y entre ellos y otro objeto en una matriz diferente. Estos dos objetos iniciales tendrán que comportarse de manera diferente si ocurren ciertas instancias:
Intentaré ser lo más claro posible. Mi código tiene 2 matrices de objetos:
let array1 = [{name: "New York", value: "A", price: 43, status: "not checked"}, {name: "Not Specified", value: "A", price: 333, status: "not checked"}, {name: "Barry", value: "C", price: 48, status: "not checked"},..etc.]; let array2 = [{name: "John", value: "A", price: 23, status: "not checked"}, {name: "Jerry", value: "A", price: 67, status: "not checked"}, {name: "Barry", value: "C", price: 48, status: "not checked"}, {name: "Tom", value: "F", price: 23, status: "not checked"}, {name: "Barry", value: "C", price: 48, status: "not checked"},...etc.];Como puede ver, el estado inicial de todos los objetos está "no marcado". Ahora, parte de mi código hace un bucle en una matriz (array2, la más grande de las dos) para verificar si, en la misma posición "i", tienen objetos dentro con diferentes propiedades/valores:
for (let i = 0; i < array2.length; i++){ if (array1[i].value != array2[i].value){ ...do something...}.Ahora, como puede ver, también hay un resultado en común en array1 y array2:
{name: "Barry", value: "C", price: 48, status: "not checked"}Lo que me gustaría hacer es esto:
Lo siento por el muro de texto, pero siendo bastante novato es difícil describir a veces lo que estoy tratando de hacer. ¡Gracias por cualquier sugerencia!
Deberá llamar a una función de find para cada elemento en la primera matriz. Algo como esto:
array1.forEach(item => { var found = array2.find(item2 => item2.value === item.value) if (found) { // do something } }