Estoy tratando de crear un pedido de producto personalizado. Necesito almacenar todas las opciones seleccionadas en el JSON.
como esto
let attr = [{ fabric: 'Bargandi Check', style:[{ Jacket lapels: 'Notch' }], }];imagen del selector para comprender la masa
Quiero que cuando el usuario seleccione cualquiera de estas opciones, lo almacenaré en JSON cuando un usuario actualice cualquiera de las opciones, se actualizará en el objeto JSON y cuando el usuario seleccione la nueva opción, se agregará en JSON.
como esto
let attr = [{ fabric: 'Bargandi Check', style:[{ Jacket lapels: 'Notch', Lapel width: 'Slim' // this }], }];No puede "empujar" un elemento en un objeto Javascript. pero puede usar el operador de punto o los corchetes para acceder a una propiedad existente/reescribir propiedad/asignar propiedad
const obj = { name: 'ed', age: '16' }; // rewriting an existing property obj["age"] = 20; obj["name"] = 'edward'; console.log(obj["skill"]); // will be undefined obj["skill"] = "Javascript"; // setting it as a new property obj["list"] = []; // the list property is an array obj["list"].push(1); // now i can use push because its an array console.log(obj);Una cosa más, las propiedades de JavaScript no pueden tener espacios en blanco, pero puede separarlos con un guión o un guión bajo.
"Un nombre de propiedad de objeto puede ser cualquier cadena de JavaScript válida, o cualquier cosa que se pueda convertir en una cadena, incluida la cadena vacía. Sin embargo, cualquier nombre de propiedad que no sea un identificador de JavaScript válido (por ejemplo, un nombre de propiedad que tenga un espacio o un guión, o que comience con un número) solo se puede acceder usando la notación de corchetes" - MDN
Tu objeto corregido
let attr = [{ fabric: 'Bargandi Check', style: [{ Jacket_lapels: 'Notch', Lapel_width: 'Slim' // this }], }]; const found = attr.find(x => x.fabric == 'Bargandi Check'); found.style[0].Lapel_width = 'Thick' // this will rewrite the width property to "thick" console.log(attr);