跳到主要内容

你不是已登录。您的编辑将被放置在队列中,直到同行评审.

我们欢迎编辑,使文章更容易理解,对读者更有价值。由于社区成员审阅了编辑内容,请尝试使帖子比您发现的更好,例如,通过修改语法或添加其他资源和超链接。

从对象数组中提取属性值作为数组

我有以下结构的JavaScript对象数组:

objArray=[{foo:1,bar:2},{foo:3,bar:4],{foo:5,bar:6}];

我想从每个对象中提取一个字段,并获得一个包含值的数组,例如字段foo公司将给出数组[ 1, 3, 5 ].

我可以用这个简单的方法来做到这一点:

函数getFields(输入,字段){var输出=[];对于(var i=0;i<输入长度;++i)output.push(输入[i][字段]);返回输出;}var result=getFields(objArray,“foo”);//返回[1,3,5]

是否有一种更优雅或惯用的方法来实现这一点,从而不需要自定义实用程序函数?


关于的注释建议的副本,它涵盖了如何转换单个对象到数组。

答案

取消
11
  • 4
    好吧,这和托蒂梅德利的另一个答案是一样的,但不是这样,(在我看来)这实际上比其他答案好答案,所以……将其更改为接受的答案。
    – 海德
    评论 2017年10月11日17:52
  • 2
    顺便说一句,我真的很喜欢那个=>符号对我来说是一件新鲜事,所以我认为如果该解决方案确实可行,那么需要对其兼容性进行审查。 评论 2017年10月13日11:49
  • 7
    @PauloRoberto Arrow函数包括除IE外,其他地方基本上都支持。 评论 2017年10月27日6:48
  • 5
    当然,这是允许的,但IMHO没有什么能使这个答案客观上更好,除了它使用的语法不可用当时你问了这个问题,有些浏览器甚至不支持。我还要注意到,这个答案是在这个答案发布前近一年对最初接受的答案所做评论的直接副本。
    – 参宿一
    评论 2018年2月10日19:55
  • 56
    @Alnitak在我看来,使用更新的功能,客观上更好。这个片段非常常见,所以我不认为这是剽窃。把过时的答案钉在最上面真的没有任何价值。
    – 罗布
    评论 2018年3月2日5:59