在javascript中将对象展平为数组

时间:2014-01-29 08:03:38

标签: javascript arrays node.js object

我想转换像这样的对象:

[
  { name: 'john', surname: 'doe' },
  { name: 'jane', surname: 'dee' },
]

进入一个数组,就像这样。通过选择任意键(例如:'name')

[ 'john', 'jane' ]

实现这一目标的最快方法是什么?提前谢谢。

3 个答案:

答案 0 :(得分:3)

尝试使用map这样的功能

[
    { name: 'john', surname: 'doe' },
    { name: 'jane', surname: 'dee' },
].map(function(a){return a.name;})    

答案 1 :(得分:1)

如果您不需要复古兼容性(我认为您不需要它,因为您使用的是NodeJS),您只需使用:

var obj = [
    { name: 'john', surname: 'doe' },
    { name: 'jane', surname: 'dee' },
],
    names = obj.map(function(item) {return item.name;});

或者,"最慢"方式:

var names = []; //obj defined before
for(var i = 0; i < obj.length; i++) 
    names.push(obj[i].name);

答案 2 :(得分:0)

如果您使用的是UnderscoreJS,则可以写下:

names = _.pluck(obj, 'name');
相关问题