Tengo una variable de objeto y quiero insertar en mi objeto una nueva { key: "value" } pero con un bucle y usando un índice de bucle.
Algo como esto:
let headers = { product_title: "Product Name", action: "Status", quantity: "Quantity", priority: "Priority", }; for (let i = 0; i < bigger; i++) { headers = { ...headers, ...{ 'org_{i}': i } }; }¿Hay alguna manera de hacer algo como esto o agregar una clave única con índices?
Finalmente necesito algo como a continuación:
let headers = { ...old data key_1: "", key_2: "", key_3: "", };Hay una cosa de ES6 llamada "propiedades calculadas" que permite que JS regular entre [] forme una clave de cadena ...
let headers = { product_title: "Product Name", action: "Status", quantity: "Quantity", priority: "Priority", }; for (let i = 0; i < 5; i++) { headers = { ...headers, ['key_' + i]: i } } console.log(headers)Genial, pero esto crea un objeto desechable para cada iteración. Saltándose el literal con la extensión, puede usar JS más antiguo, de manera más eficiente ...
let headers = { product_title: "Product Name", action: "Status", quantity: "Quantity", priority: "Priority", }; for (let i = 0; i < 5; i++) { headers['key_' + i] = i } console.log(headers)Para agregar una nueva clave-valor en el objeto, literalmente puede usar
headers[key] = valuePero si tiene la intención de establecer claves dinámicamente, le sugiero que consulte esto https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map
Prueba algo como a continuación
const output = [...Array(bigger)].reduce((acc, curr, index) => { return ({ ...headers, ...acc, [`org_${index}`]: index }) }, {});