Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

163
Vistas
¿Cómo modificar el valor del objeto almacenado en un literal a través de este contexto en Vue o JavaScript?

Estoy en Vue.js y trato de corregir el valor de entrada de cantidad inapropiado como "12jd" . Pertenecen a objetos de elementos que se encuentran en un literal de matriz llamado almacén (que se define en el retorno de datos ( )). El código problemático está en la función del controlador de eventos de entrada que obtiene el índice del elemento - idx en el que se escribió la cantidad incorrecta.

Todo va bien hasta que intento asignar la matriz adecuada, sin cantidad incorrecta, a la tienda original en este contexto. Esta parte no funciona, no se cambia ningún valor en el original.

 failed(idx) { const storeCopy = lodash.cloneDeep(this.store); //deep copy the store literal const unmodified = storeCopy.filter((item) => item.id !== idx); const modified = storeCopy.filter((item) => item.id === idx)[0]; //slice out the relevant part const modifiedCopy = JSON.parse(JSON.stringify(modified)); //deep copy the item object const input = parseInt((" " + modifiedCopy.quantity).slice(1)); //get parsed input from deep copied string const store = [ Object.defineProperty(modifiedCopy, "quantity", { value: isNaN(input) ? 0 : input, }), ...unmodified, ]; //correct the input and put it back to the array console.log(store); this.store.length = 0; //from this it's messed up this.store = store; }

Hago una copia profunda incluso tres veces, aún así el problema se retropropaga a la matriz registrada en la consola después de descomentar las dos últimas líneas. Sin ellos está bien.

¿Por qué la referencia no se recolecta como basura después de establecer this.store.length en 0, o this.store en []? ¿Qué me pierdo, tal vez quede alguna referencia original en la nueva matriz? ¡Cualquier ayuda apreciada! Gracias

editado

Aquí está la salida sin entonces con las dos últimas líneas:

Sin las dos últimas líneas

Ni siquiera entiendo quién es posible que la tienda en el ámbito local se vea afectada al revés, al insertar esas dos líneas. De todos modos, se restaura de alguna manera al valor incorrecto "12jd".

con las dos lineas

Incluso el registro se ve diferente, tengo que hacer clic en los tres puntos para revelar los valores.

about 4 years ago · Juan Pablo Isaza
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda