Home > Enterprise >  javascript push key value into object with index
javascript push key value into object with index

Time:11-29

I have a object variable and i want to push into my object a new { key: "value" } but with a loop and using loop index.

Something like this:

    let headers = {
        product_title: "Product Name",
        action: "Status",
        quantity: "Quantity",
        priority: "Priority",
    };

    for (let i = 0; i < bigger; i  ) {
        headers = { ...headers, ...{ 'org_{i}': i } };
    }

is there a way to do something like this or add unique key with indexes?

Finally i need something like below:

let headers = {
   ...old data
   key_1: "",
   key_2: "",
   key_3: "",
};

CodePudding user response:

There's an ES6 thing called "computed properties" which allows regular JS enclosed in [] to form a string key...

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)
<iframe name="sif1" sandbox="allow-forms allow-modals allow-scripts" frameborder="0"></iframe>

Neat, but this creates a throw-away object for each iteration. Skipping the literal with the spread, you can use older JS, more efficiently...

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)
<iframe name="sif2" sandbox="allow-forms allow-modals allow-scripts" frameborder="0"></iframe>

CodePudding user response:

To add new key-value into object you can literally just use

headers[key] = value

But if you are intending to set keys dynamically I suggest you to check this out https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map

CodePudding user response:

Try something like below

const output = [...Array(bigger)].reduce((acc, curr, index) => {
    return ({ ...headers, ...acc, [`org_${index}`]: index })
}, {});
  • Related