我有一个返回的JSON对象。下面是一个例子。在此特定示例中,可以更改为所需的任何属性名称。例如,下一次这将是who
name
who
问题
在我的JS中,我需要能够参考该属性并访问其数据而无需使用其名称,因为该名称始终是不同的。
我尝试了什么
[{"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"}]
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
});
应在对象中返回第一个枚举的属性名称。
,如果Object.keys(m)[0]
m
则将是https://developer.mozilla.org/en-us/docs/javascript/reference/global_objects/objects/object/keys
对:
m[Object.keys(m)[0]]
。请参阅bobject.values 使用 您也可以使用
"Arthur"
循环:
Object.values(m)[0]
上面的对象中的多个
for...in
对,即:
for in
上述内容:如果不使用
data.forEach( function ( m ) {
for ( const key in m ) {
if (m.hasOwnProperty(key)) { // Only print properties that have not been inherited
console.log( key ); // "who"
console.log( m[key] ); // "Arthur"
}
}
});
使用 其他迭代对象的好选择是与
key: value
和[ {"who": "Arthur", "who": "Fred"}, {"who": "Craig"}, ]
hasOwnProperty
仅在枚举的道具上迭代
for...of
这将通过数据中每个人的每个属性进行列举。因为每人只有一个财产(我假设),所以它只会枚举该财产并停止,使您可以使用该属性,而不论其名称如何。