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

JavaScript中如何将值作为对象的键名传入?

解决动态键名作为对象属性的语法错误

错误原因

你直接在对象字面量里使用key_names[0]作为键名的写法不被ES5及更早的语法支持,对象字面量的默认键名只能是标识符,无法直接解析表达式,因此抛出SyntaxError: Unexpected token [错误。

解决方案

方案1:ES6计算属性名(推荐)

ES6引入了计算属性名语法,只需将动态键名用方括号[]包裹,就能在对象字面量中直接使用表达式作为键名:

let x = []
let key_names = ['a.b.c','g.h.i']
x.push({ [key_names[0]]: 1, [key_names[1]]: 2 })
console.log(x)
// 输出:[ { 'a.b.c': 1, 'g.h.i': 2 } ]

方案2:传统对象赋值(兼容ES5)

如果需要兼容不支持ES6的环境,可以先创建空对象,再通过方括号语法逐个添加键值对:

let x = []
let key_names = ['a.b.c','g.h.i']
let obj = {}
obj[key_names[0]] = 1
obj[key_names[1]] = 2
x.push(obj)
console.log(x)
// 输出:[ { 'a.b.c': 1, 'g.h.i': 2 } ]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 10:36:51