javascript 将键值推送到具有索引的对象中

javascript push key value into object with index

我有一个对象变量,我想将一个新的 { key: "value" } 推入我的对象,但有一个循环并使用循环索引。

像这样:

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

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

有没有办法做这样的事情或添加带有索引的唯一键?

最后我需要如下的东西:

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

要将新的键值添加到对象中,您可以直接使用

headers[key] = value

但是如果您打算动态设置密钥,我建议您检查一下 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map

试试下面的方法

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

有一个名为“计算属性”的 ES6 东西,它允许包含在 [] 中的常规 JS 形成一个字符串键...

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)

很好,但这会为每次迭代创建一个一次性对象。跳过带有传播的文字,您可以更有效地使用旧的 JS...

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)