Quiero actualizar el valor del objeto de shoppingItems
usando el operador de propagación updateObj actualiza el objeto pero solo dentro de la función
¿Por qué el objeto dentro shoppingItems no cambia su valor?
const kontorGoods = [{ cheese: 5.5 }, { rice: 2.5 }, { meat: 8.8 }]; const shoppingItems = [{ cheese: 5.5 }]; function updateValue(itemIndex){ const item = Object.values(kontorGoods[itemIndex])[0]; updateObj(shoppingItems, itemIndex); console.log(updateObj(shoppingItems, itemIndex)) } function updateObj(objArray, objIndex) { const currentObjkey = Object.keys(objArray[objIndex])[0]; const currentObjValue = Object.values(objArray[objIndex])[0]; return { ...objArray[objIndex], // add the key as a variable [currentObjkey]: currentObjValue + currentObjValue, }; } updateValue(0) console.log(shoppingItems)Un objeto literal crea un nuevo objeto, no tiene ningún efecto en las cosas que está usando para completar sus propiedades, incluidos los objetos en los que usa la sintaxis extendida.
Para actualizar el objeto en la matriz, vuelva a escribir en la matriz:
objArray[objIndex] = { // ^^^^^^^^^^^^^^^^^^^^^ ...objArray[objIndex], // add the key as a variable [currentObjkey]: currentObjValue + currentObjValue, };