Suppose I have an array of object:
const purchaseDetails = [
{
amount: '4567',
purchaseOrder: 'B234',
purchaseDate: '10/12/2020',
someRandom1: '123',
someRandom2: '345'
},
{
amount: '4567',
purchaseOrder: 'B234',
purchaseDate: '10/12/2020',
someRandom1: '678',
someRandom2: '987'
}
]
and another object as:
const toReplace = {
amount: '1211',
purchaseOrder: 'A123',
purchaseDate: '12/30/2020',
vat: '123',
}
I want to replace value of purchaseDetails with toReplace value
O/p as:
const purchaseDetails = [
{
amount: '1211',
purchaseOrder: 'A123',
purchaseDate: '12/30/2020',
vat: '123',
someRandom1: '123',
someRandom2: '345'
},
{
amount: '1211',
purchaseOrder: 'A123',
purchaseDate: '12/30/2020',
vat: '123',
someRandom1: '678',
someRandom2: '987'
}
]
For this i tried as:
purchaseDetails.forEach(element => {
element.amount=toReplace.amount,element.purchaseOrder=toReplace.purchaseOrder,
element.purchaseDate=toReplace.purchaseDate,element.tax=toReplace.tax
});
But it doesnot replace the value...i tried with single value as well but it's not working.
As per provided solution it was assignment issue.
But the second solution provided, when I try:
purchaseDetails.forEach(element => {
element = {...element, ...avacado}
console.log(element)
});
On console.log(element), it shows element with value changed but console.log(purchaseDetails) value doesnot change.
==is used for comparisons. Use=for assignments. You should be able to doelement = {...element, ...toReplace}.Object.assign(element, toReplace);instead.