У вас есть два варианта сделать это. Первым выбором является использование оператора map
:
let fooArray = [ { id: 2,
name: 'woda',
price: 45.98,
quantity: 1,
createdAt: '2019-07-23T17:50:43.033Z',
updatedAt: '2019-07-23T17:50:43.033Z',
shopId: 2 },
{ id: 3,
name: 'sham',
price: 69.98,
quantity: 1,
createdAt: '2019-07-23T17:50:43.033Z',
updatedAt: '2019-07-23T17:50:43.033Z',
shopId: 2 } ];
let newArray = [3,4];
Использование деструктурирующего присваивания и ... rest оператор (этот способ может быть полезен, когда вы хотитевзять вложенный объект):
fooArray = fooArray.map(({
quantity,
...rest
}, i) => ({ ...rest, quantity : quantity * newArray[i]}));
console.log(fooArray);
или более простая и удобочитаемая map()
функция без оператора ...rest
и разрушающего присваивания:
fooArray = fooArray.map((f,i) => {
f.quantity = f.quantity * newArray[i]
return f;
});
console.log(fooArray);
и второй способ заключается в использованииforeach
метод. Как советовал Цербр, потому что это семантически лучше, более короткий код, легче понять, когда вы хотите отредактировать только одно значение:
fooArray.forEach((e, i) => {
e.quantity = e.quantity * newArray[i];
})
console.log(fooArray);
Что использовать - решать только вам. Мы только что показали, как вы можете достичь желаемого.