如何在javascript中将字符串转换为对象的字段名称

时间:2011-01-30 04:59:15

标签: javascript

我有一个像以下的js对象:

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

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

提前谢谢。

5 个答案:

答案 0 :(得分:47)

您可以使用索引访问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/

答案 1 :(得分:10)

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

在你的例子中:

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

答案 2 :(得分:5)

通过变量访问对象的值非常简单,使用方括号:

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

答案 3 :(得分:2)

由于对象是javascript中的关联数组,因此您可以将{name}字段作为obj['name']obj[fieldName]访问fieldName = 'name'

答案 4 :(得分:0)

完全没有关系,但是对于任何尝试从字符串变量定义对象的字段名称的人,您都可以尝试:

const field = 'asdf'
const obj = {[field]: 123}
document.body.innerHTML = obj.asdf