繁体   English   中英

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

[英]How to convert string as object's field name in javascript

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

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

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

先感谢您。

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

在Javascript中, obj.name等同于obj['name'] ,它添加了必要的间接。

在你的例子中:

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

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

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

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

根本不相关,但对于任何试图从字符串变量定义对象的字段名称的人,您可以尝试:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM