Supongamos que tengo dos matrices de objetos como,
let oldBookDetails = [ {'name':'Harry pottar','amount':10, is_modified: false}, {'name':'LOTR','amount':20, is_modified: false}, {'name':'dune','amount':15, is_modified: false} ] let newBookDetails = [ {'name':'Harry pottar','amount':15}, {'name':'LOTR','amount':20}, {'name':'HR','amount':15} ]Con la ayuda del miembro de desbordamiento de pila @Tushar Shahi, con la ayuda de la solución a continuación, obtengo objetos que se han modificado en una nueva matriz comparando oldBookDetails y newBookDetails, probé como,
let componentRemovedNote = "The centre has added "; let componentAddedNote = "The center has removed "; let bookModified = newBookDetails.map((x) => { let foundBook = oldBookDetails.find((old) => old.name === x.name); if (foundBook) { if (foundBook.amount !== x.amount) { if (foundBook.amount < x.amount) { componentAddedNote += `${foundBook.name} - ${foundBook.amount}`; return { ...x, is_modified: true }; } else { componentRemovedNote += ` ${x.name} - ${x.amount} `; return { ...x, is_modified: true }; } } else return { ...x, is_modified: false }; } else { componentAddedNote += `${x.name} - ${x.amount}`; return { ...x, is_modified: true }; } });El resultado esperado de la matriz bookDetails es correcto, pero también quiero mantener notas como:
El propietario agregó Harry Pottar - 10 (valor original), HR - 15 (valor nuevo)
Duna eliminada por el propietario - 15
La solución que probé me está dando valor incurrido en componenteRemovedNote y componenteAddedNote.
Por favor, hágamelo saber si alguien necesita más información.