在不知道属性名称的情况下访问 JavaScript 的对象属性

新手上路,请多包涵

情况

我有一个返回的 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 许可协议

阅读 429
2 个回答

您还可以使用 for in 循环:

 data.forEach( function ( m ) {

  for ( const key in m ) {

    console.log( key ); // "who"
    console.log( m[key] ); // "Arthur"

  }

});

以上也适用于对象中的多个 key: value 对,即:

 [ {"who": "Arthur", "who": "Fred"}, {"who": "Craig"}, ]

原文由 hitautodestruct 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题