Tengo dos datos de muestra llamados oldArray y newArray .
Quiero reemplazar objetos oldArray con objetos newArray si makeLineName y makeProcessTypeId de oldArray y newArray son iguales.
Por ejemplo, en oldArray, tenemos TestDemo1 y Test565 makeLineName disponibles y los mismos TestDemo1 y Test565 makeLineName disponibles en newArray también, por lo que quiero buscar newArray para este TestDemo1 y Test565 makeLineName y si el mismo makeLineName está disponible en newArray que reemplazar los valores de los campos de oldArray makelinename con el mismo objeto makelinename de newarray.
y si el mismo makelinename no está disponible en newArray, entonces el objeto oldArray que no coincide con lo que permanecerá como está.
oldArray = [ { makeLineName: "TestDemo1", avtBCT: 80, MaxBCT: 80 }, { makeLineName: "Test565", avtBCT: '', MaxBCT: '' }, { makeLineName: "Luck", avtBCT: 60, MaxBCT: 60 } ]; const newArray = [ { makeLineName: "TestDemo1", avtBCT: 500, MaxBCT: 500 }, { makeLineName: "Test565", avtBCT: 600, MaxBCT: 600 } ];Salida esperada =
filteredData = [ { makeLineName: "TestDemo1", avtBCT: 500, MaxBCT: 500 }, { makeLineName: "Test565", avtBCT: 600, MaxBCT: 600 }, { makeLineName: "Luck", avtBCT: 60, MaxBCT: 60 } ];Puedes usar esta línea de código:
let resultArray = oldArray.map(el => newArray.find(f => f.makeLineName == el.makeLineName) ?? el);para resolver tu error prueba:
let resultArray = oldArray.map(el => { let newElement = newArray.find(f => f.makeLineName == el.makeLineName); return newElement ? newElement : el; });