2011-01-30 100 views
19

我有一个js对象,如:如何字符串转换为对象的字段名在javascript

obj = { 
    name: 'js', 
    age: 20 
}; 

现在我想访问obj的名称字段,但我只能得到字符串“名”,所以如何将'name'转换为obj的字段名称,然后获得像obj.name这样的结果。

预先感谢您。

+3

`obj.name`还是我错过了这个问题的重点? – mhitza 2011-01-30 05:03:08

回答

42

您可以使用访问JavaScript对象的属性索引即

var obj = { 
    name: 'js', 
    age: 20 
}; 

var isSame = (obj["name"] == obj.name) 
alert(isSame); 

var nameIndex = "name"; // Now you can use nameIndex as an indexor of obj to get the value of property name. 
isSame = (obj[nameIndex] == obj.name) 

查看示例@:http://www.jsfiddle.net/W8EAr/

2

由于对象是JavaScript中的关联数组,因此您可以访问'名称'字段,如obj['name']obj[fieldName],其中fieldName = 'name'

8

在Javascript中,obj.name相当于obj['name'],它增加了必要的间接性。

在您的例子:

var fieldName = 'name' 
var obj = { 
    name: 'js', 
    age: 20 
}; 
var value = obj[fieldName]; // 'js' 
5

这是很简单的,通过一个变量来访问对象的价值,你用方括号:

var property = 'name'; 
var obj = {name: 'js'}; 
alert(obj[property]); // pops 'js' 
相关问题