繁体   English   中英

不知道属性名称时如何从javascript对象获取值

[英]How can I get a value from a javascript object when I don't know the property name

我有一个对象var obj = {id: value}

在我的html中,我想显示id和值。

我正在使用angularjs。

请:我不希望使用ng-repeat解决方案,因为在此对象中我只有一个元素

谢谢

在现代的浏览器上,您可以通过Object.keys获得对象的“自己的”属性名称(而不是其原型的名称)的列表。 如果对象只有一个属性,则只会返回一个名称:

var name = Object.keys(obj)[0]; // [0] = get the first (only)

在较旧的浏览器上,您可以通过一个for-in循环:(或者,您可以为Object.keys获取一个“ shim”或“ polyfill”,在Object.keys使用一个)

var name, n;
for (n in obj) {
    if (obj.hasOwnProperty(n)) {
        name = n;
        break;
    }
}

知道名称后,就可以使用它来获取值:

var value = obj[name];

旁注:通常最好设计对象,以使属性名称一致,并且值各不相同。 因此,例如,而不是{id: value} ,其中idvalue都是可变的,也许是{id: "the ID", value: "the value"} ,其中属性名称是一致的,并且值是变化的。 然后,您可以只使用obj.idobj.value

我不确定你的问题是什么。 您有一个名为obj的对象,并且有一个名为id的属性。

您是否要显示名为id的属性的值? 如果是这样,则如下所示:

 <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> <div ng-app ng-init="obj = {id: 'foo'}"> Object id: {{obj.id}} </div> 

还是对象更像字典,属性是可变键的情况?

 <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> <div ng-app ng-init="obj = {bar: 'foo'}; id = 'bar'"> Object {{id}}: {{obj[id]}} </div> 

暂无
暂无

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

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