Javascript 在尝试推送json对象时,会按字面处理先前定义的变量名。我错过了什么?

Javascript 在尝试推送json对象时,会按字面处理先前定义的变量名。我错过了什么?,javascript,json,Javascript,Json,onLoadLang是代码前面声明为“en_us”的变量 当我尝试使用以下命令推送时: UdfHeaderFields["translations"].push({ onLoadLang: [{ "H1": "English" }, { "H2": "English" }, { "H3": "English" }, { "H4": &qu

onLoadLang
是代码前面声明为“en_us”的变量

当我尝试使用以下命令推送时:

UdfHeaderFields["translations"].push({ onLoadLang: [{ "H1": "English" }, { "H2": "English" }, { "H3": "English" }, { "H4": "English" }, { "H5": "English" }] });
onLoadLang
部分作为
“onLoadLang”
而不是
“en_us”

这是跨过一步后的样子


我尝试过用各种字符类型来包围它,但没有效果。

如果不希望变量名被视为文字,那么应该在变量名周围加上方括号。考虑这个工作代码示例:

让x=“en_us”
让y=[]
y、 推送({x:“键是x”})
y、 推送({[x]:“键是en_us”})

console.log(y)
显示实际的代码,而不是它的图像。对于解析器来说,它是一个键“onLoadLang”,它不知道您是否将其作为变量引用。请参阅如何将其设置为变量的副本。这很有效。除了方括号,我什么都试过了/掌纹