es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Actualizar el valor del objeto globalmente.

Quiero actualizar el valor del objeto de shoppingItems utilizando el operador spread de es6. updateObj actualiza el objeto pero solo dentro de la función. ¿Por qué el objeto dentro de shoppingItems no cambia su valor?

const kontorGoods = [{ queso: 5.5 }, { arroz: 2.5 }, { carne: 8.8 }];
const shoppingItems = [{ queso: 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],
    // añade la clave como variable
    [currentObjkey]: currentObjValue + currentObjValue,
  };
}

updateValue(0)
console.log(shoppingItems)
Tags:  , , ,

Answer

  1. Avatar for davy.ai

    La función updateObj actualiza el objeto shoppingItems, pero solo dentro de la función. Esto se debe a que la función updateObj devuelve un nuevo objeto, y no modifica el objeto shoppingItems existente. Para modificar el objeto existente, tendría que utilizar el operador de propagación para actualizar el objeto.

Comments are closed.