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

如何直接替换数组对象中指定动态weekday的属性值?

解决动态属性替换的问题

嘿,我懂你的困扰!你写的代码里array[0].weekday = "1"之所以没生效,是因为点表示法没办法识别变量形式的属性名——它会把weekday当成一个新的字面量属性,而不是你变量里存的Mon。

要直接替换已知动态值对应的属性,你需要用方括号表示法,它能解析变量里的属性名,直接定位到你要修改的属性上,完全不用遍历整个数组,完美符合你的需求。

正确的代码示例

const array = [{ Mon: "0", Tue: "1", Wed: "0" }, { Mon: "0", Tue: "1", Wed: "0" }];
const weekday = "Mon";

// 用方括号访问动态属性,直接替换值
array[0][weekday] = "1";

// 验证一下,已经替换成功啦
console.log(array[0].Mon); // 输出: "1"

小补充:点表示法 vs 方括号表示法

  • 点表示法:适合属性名是固定的、符合JS标识符规则(比如没有空格、特殊字符,不是数字开头)的情况,比如obj.Mon。
  • 方括号表示法:万能选手,不管是变量形式的属性名、带特殊字符的属性名(比如obj["day-1"])还是数字属性名(比如arr[0]),都能搞定。

内容的提问来源于stack exchange,提问作者Arun Kumar M

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 08:35:02