在不知道该属性名称

问题描述 投票:0回答:2
situation

我有一个返回的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
则将是
javascript object properties
2个回答
56
投票

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

上述内容:

6
投票
tosey to reterage overs tockyss不保证订单

如果不使用
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
    这将通过数据中每个人的每个属性进行列举。因为每人只有一个财产(我假设),所以它只会枚举该财产并停止,使您可以使用该属性,而不论其名称如何。
        

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.