JavaScript如何使用循环索引向对象添加带序号的唯一key-value键值对
实现方法
你要的带索引的动态唯一key完全可以实现,核心是用JavaScript的计算属性名语法动态生成对象键,拼接索引时使用模板字符串解析变量即可。
你原有写法的问题是直接用普通字符串'org_{i}'不会解析变量i,也没有用计算属性标识动态键,所以无法生成预期的键名。
推荐写法(性能最优)
直接给原有对象新增动态属性,不需要每次生成新对象:
let headers = { product_title: "Product Name", action: "Status", quantity: "Quantity", priority: "Priority", }; // 根据需求调整要新增的键数量 const addKeyCount = 3; // 如果你需要key从1开始计数,就把i的初始值设为1 for (let i = 1; i <= addKeyCount; i++) { // 方括号包裹的就是动态计算的key,模板字符串`${}`用来解析变量i headers[`key_${i}`] = ""; }
执行后得到的headers就是你要求的结构,原有属性保留,同时新增key_1、key_2、key_3三个值为空字符串的属性。
展开语法兼容写法
如果你习惯用展开对象的写法,修改动态键部分即可:
const addKeyCount = 3; for (let i = 1; i <= addKeyCount; i++) { headers = { ...headers, // 方括号标识动态计算属性 [`key_${i}`]: "" } }
注意:展开写法每次都会生成新的对象,仅修改原对象的场景下更推荐直接赋值的写法。
内容的提问来源于stack exchange,提问作者Mr Arman
相关产品推荐
相关产品推荐

