情况
我有一个返回的 JSON 对象。下面是一个例子。 who
在此特定示例中可以更改为所需的任何属性名称。例如,下次这将是 name
而不是 who
[{"who":"Arthur"},{"who":"Craig"},{"who":"Dan"},{"who":"Daniel"},{"who":"Frank"},{"who":"Ian"},{"who":"jamie"},{"who":"Jason"},{"who":"jaz"},{"who":"Liam"},{"who":"Paul"},{"who":"Shaun"},{"who":"Wayne"}]
问题
在我的 JS 中,我需要能够在不使用其名称的情况下引用该属性并访问其数据,因为名称总是不同的。
我试过的
data.forEach(function(m){
console.info(m); // Object { who="Craig"}
console.info(m.who); // Craig, as expected
console.info(m[0]); // now not sure who to get it if who changes to name
});
原文由 Jamie Hutber 发布,翻译遵循 CC BY-SA 4.0 许可协议
Object.keys(m)[0]
应该返回对象中的第一个可枚举属性名称m
。因此,如果
m = {"who": "Arthur"};
那么m[Object.keys(m)[0]]
将是"Arthur"
。https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Object/keys
或者:
Object.values(m)[0]
。请参见 Object.values