2014-03-02 203 views
1

我有一个JavaScript对象定义如下:使用字符串作为属性名

var user = { name:'Allen', age:'26', gender:'male'} 

我想通过字符串引用用户属性user.name如下面:

var string = "name"; 
var username = user.string; 

这不工作,我会怎么做呢?

编辑︰只是为了澄清,我希望user.string是相当于user.name - 有人可能会问为什么我不只是调用user.name,这是因为我有一个字符串数组,我想要为该对象进行评估。

+2

var username = user [string]? – sinisake

+0

@ cokeman19不完全... –

+0

[动态对象属性名称](http://stackoverflow.com/questions/4244896/dynamic-object-property-name)和[一堆其他](http:///stackoverflow.com/questions/17832583/create-an-object-with-dynamic-property-names#comment26027295_17832583) –

回答

5

你会做这样的事情

var string = 'name'; 
var username = user[string]; 

访问字符串中的属性。

现在你的代码试图访问用户的一个未定义的'string'属性。

+0

这个作品!我猜对象也可以评估为字典,谢谢! – Allen

0

不是100%确定你的意思。您可以通过user.name访问名称属性。它会返回艾伦。

var user = { name:'Allen', age:26, gender:'male' } 

var name = user.name; // 'Allen' 
var age = user.age; // 26 
var gender = user.gender; // 'male' 
+0

基本上,我想获得字符串的REFERENCE。例如,如果我有一个var x =“name”,那么我希望user.x等于user.name – Allen

相关问题