javascript字典的键不作为值存储,而是作为变量名存储 [英] Key for javascript dictionary is not stored as value but as variable name
问题描述
我正在尝试创建一个类似的字典对象
I'm trying to create a dictionary object like so
var obj = { varName : varValue };
我期待的是,如果 varName ='foo'
,obj应该是 {'foo','some value'}
然而我看到的是 {varName,'some value' }
未使用变量的值,而是使用变量名作为键。如何使用变量值作为键?
What I'm expecting is if varName='foo'
, the obj should be {'foo', 'some value' }
however what I see is {varName, 'some value'}
the value of variable is not being used but a variable name as a key. How do I make it so that varible value is used as key?
推荐答案
试试这样:
var obj = {};
obj[varName] = varValue;
您无法在旧Javascript中使用动态键初始化对象。 var obj = {varName:varValue};
相当于 var obj = {varName:varValue};
。这是Javascript解释的方式。
You can't initialize objects with 'dynamic' keys in old Javascript. var obj = { varName : varValue };
is equivalent to var obj = { "varName" : varValue };
. This is how Javascript interprets.
然而,新的ECMAScript支持 计算属性名称 ,您可以这样做:
However new ECMAScript supports computed property names, and you can do:
var obj = { [varName]: varValue };
这篇关于javascript字典的键不作为值存储,而是作为变量名存储的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!