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

JavaScript中向数组push对象时,如何用变量作为对象的键?

解决方案

你遇到的问题是因为对象字面量里的myVariable被当作固定字符串键名,而非变量的值。要实现用变量值作为对象键名,需要使用ES6的计算属性名语法,把变量放在方括号[]内即可。

修改后的代码示例

方式一:使用forEach(推荐,仅遍历执行操作)

var x = [];

y.forEach(({ myVariable }) => {
  x.push({ [myVariable]: false });
});

方式二:直接用map生成目标数组(更简洁高效)

既然最终是要生成数组x,可以直接利用map返回新数组的特性,省去手动push的步骤:

const x = y.map(({ myVariable }) => ({ [myVariable]: false }));

原理说明

计算属性名[myVariable]会将括号内的变量解析为它的实际值,作为对象的键名。比如如果myVariable的值是"isEnabled",那么生成的对象就是{ isEnabled: false },而不是固定的{ myVariable: false }。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 12:45:49