¿Cuál es la mejor manera de actualizar una matriz de objetos con nuevos datos?
Actualmente estoy tratando de actualizar una matriz de objetos usando empalme. Sin embargo, cuando se ejecuta el siguiente código, aparece un error que dice: "Error de tipo: no se puede agregar la propiedad 2, el objeto no es extensible".
Estoy siguiendo la documentación de Mozilla para 'empalme' y estoy 99% seguro de que estoy haciendo esa parte bien. El problema parece provenir del hecho de que estoy trabajando con objetos. ¿Debería estar haciendo las cosas de una manera diferente o siguiendo una documentación diferente?
//console.log(designs) //output: // (2) [{...}, {...}] const file = "file-name-example" let temp = designs.splice(currentIndex, 0, { image: file, positions: [0,0,1] })El problema es que está intentando modificar una matriz que se ha congelado/sellado (a través Object.freeze u Object.seal ). Por lo tanto, cuando el método de splice intenta agregar otra propiedad denominada 3 , no puede hacerlo, ya que el objeto ha sido bloqueado para modificaciones. Debe eliminar el código de bloqueo para poder modificar su matriz nuevamente.
Reproducción:
const names = ["Joe", "Jon"]; Object.seal(names); names.splice(1, 0, "Ben"); // Uncaught TypeError: Cannot add property 2, object is not extensible const names2 = [...names]; Object.freeze(names); names.splice(1, 0, "Ben"); // Uncaught TypeError: Cannot add property 2, object is not extensible