You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JavaScript中如何为插入嵌套数组的新对象设置动态ID作为键名

解决方案

问题原因

你之前的写法中直接使用id: serviceOrder定义对象键,JS会默认将键名解析为固定字符串"id",不会读取id变量的实际值。

解决方法

使用 ES6 支持的计算属性名语法,将需要作为键名的变量放在方括号[]中即可,JS会自动计算变量值作为最终键名。
另外你提供的原始代码中service的结构存在语法问题:数组内不能直接写1:{a:1,b:3}这种键值对结构,根据你的使用场景分两种情况处理:

情况1:service是对象(括号应为{}而非[])

这也是符合你原有写法的场景,正确代码如下:

let serviceOrder = {a:5, b:6}
let id = uuid4(); // 示例值为4
// 用[]包裹id变量作为动态键
let newSer = {...order.service, [id]: serviceOrder}
// 替换原service属性
order.service = newSer

情况2:service确实是数组

如果需要往数组中追加元素,元素的键为动态id,写法如下:

let serviceOrder = {a:5, b:6}
let id = uuid4(); // 示例值为4
order.service.push({[id]: serviceOrder})

执行后就能得到你预期的效果,动态id会作为键名存入对象中。

内容的提问来源于stack exchange,提问作者Saddam Mohsen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 19:27:02