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

如何将changeField的值展开为对象属性?

解决JavaScript动态设置对象属性名的问题

嘿,这个问题其实是因为你直接把changeField当作了属性名的字符串,而不是用它变量里的值来作为属性名。ES6里有个很实用的语法叫计算属性名,正好能解决这个问题!

你只需要把对象里的changeField用方括号[]包起来,这样JavaScript就会把这个变量的值解析成属性名,而不是把变量名本身当属性名。修改后的代码如下:

let dataChanges = new Map();
let newValue = "brown";
let changeId = 5;
let changeField = "haircolor";
// 这里用方括号包裹changeField,实现动态属性名
dataChanges.set(changeId, { id: changeId, [changeField]: newValue });
console.log(dataChanges);

这样执行后,Map里对应的值就会变成{id: 5, haircolor: 'brown'},完全符合你的需求啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.27 18:03:14