如何以变量为键向JavaScript字典中插入值?
解决JavaScript动态对象键的设置问题
嘿,这个问题我之前也踩过坑!你用dict.${string}的写法之所以报错,是因为JavaScript的点运算符只支持跟字面量形式的属性名,没法直接解析动态的变量或者模板字符串表达式,所以语法检查会直接报错。
给你两种靠谱的解决办法:
1. 使用方括号语法(最通用的方式)
这是设置动态对象属性最经典的方法,方括号里可以放任意表达式,它会先计算出表达式的值,再把这个值作为键来设置属性:
var dict = {}; var string = "Hello"; dict[string] = "Bla Bla Bla"; console.log(dict); // 输出: { Hello: "Bla Bla Bla" }
2. ES6对象字面量动态键(初始化时更简洁)
如果是在创建对象的同时就想设置这个动态键,可以用ES6新增的对象字面量动态属性名语法,直接把变量放在方括号里就行:
var string = "Hello"; var dict = { [string]: "Bla Bla Bla" }; console.log(dict); // 输出: { Hello: "Bla Bla Bla" }
两种方法都能达到你想要的效果,选哪种就看你是在初始化对象时设置,还是后续给已有对象添加属性啦~
内容的提问来源于stack exchange,提问作者Robert Westbury
相关产品推荐
相关产品推荐

