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

Node.js动态添加对象属性求助:如何实现属性名动态化

解决方案:实现JavaScript对象动态属性名

这问题我之前也碰到过,核心是你需要用动态属性名来替代固定的属性名,下面给你两种靠谱的解决办法:

方法1:ES6计算属性名(推荐,简洁直观)

直接在对象字面量里用方括号包裹变量,就能把变量的值作为属性名:

let fileName = "test.c";
let testCase = "Case1";
let test = {
  [fileName]: testCase // 这里的[]会解析fileName变量的值,作为属性名
};
console.log(test); // 输出:{ "test.c": "Case1" }

这种语法是ES6新增的,写起来特别清爽,现在大部分项目环境都支持。

方法2:方括号赋值(兼容性拉满,适合老环境)

如果你的代码需要兼容ES6之前的环境,就先创建空对象,再用方括号语法赋值:

let fileName = "test.c";
let testCase = "Case1";
let test = {};
test[fileName] = testCase; // 方括号里可以放变量,动态设置属性名
console.log(test); // 输出:{ "test.c": "Case1" }

为什么你的原代码不行?

你原来写的test.fileName = testCase,这里的.fileName是固定属性名,相当于给test对象添加了一个叫"fileName"的属性,而不是把fileName变量的值(也就是"test.c")作为属性名,所以才得不到你想要的结果~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 04:40:50