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

在JavaScript中如何使用变量作为键更新对象或Map?

问题本质

JavaScript 对象的点访问符会将后面的标识符解析为固定字符串的静态属性名,不会识别变量值。你写的task.key = value实际是给task新增了一个名为key的属性,而非修改key变量指向的目标属性。而task."$key"的写法不符合JavaScript语法规范,会直接抛出语法错误。

修复方案

使用方括号动态属性语法实现变量作为属性名的需求,方括号内的表达式会被解析后的值作为属性名操作对象属性。

修改后的可运行代码:

const task = {
    title : 'update UI for Login',
    description:'update UI for Login',
    status : 'open'
}

const update = (key,value) =>{
  // 方括号内的key会被解析为变量的值
  task[key] = value;
}

console.log(task);
update('title','Sign Up');
console.log(task);

运行后可以看到title属性已被正确修改为Sign Up,不会新增多余属性。

语法补充说明
  • 点语法仅适合操作固定字面量属性名的场景,所有动态生成、运行时才能确定的属性名,都需要使用方括号语法操作。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 11:24:04