将对象数组展平为数组

时间:2017-06-01 11:32:20

标签: javascript ecmascript-6

const x = [{
   name:"abc",
},{
   name:"xyz"
}]

如何将上面的对象数组转换为数组?

预期产出

x = ['abc','xyz']

我知道我可以做一个原生循环,使用push到一个新的空数组,但我正在寻找一行es2015 / es6甚至是lodash方法

4 个答案:

答案 0 :(得分:2)

只需使用map功能:

const y = x.map(c => c.name);

const x = [{
   name:"abc",
},{
   name:"xyz"
}]

const names = x.map(c => c.name);
console.log(names);

答案 1 :(得分:1)

Lodash中的解决方案(非常类似于普通js):

const x = [{
    name:"abc",
 },{
    name:"xyz"
}]

const names _.map(x, 'name'); // => ['abc', 'xyz']

修改  也可以在普通的js中提出要求

const names = x.map(el => el.name);

const names = x.map(function(el) {
   return el.name;
});

答案 2 :(得分:0)

x = [{
   name:"abc",
},{
   name:"xyz"
}];
x = x.map(function (value) {
    return value.name;
});

答案 3 :(得分:0)

使用map()

let res = x.map(o => o.name);