JavaScript映射 - 从带有名称的数组中选择一个属性

blu*_*ray 2 javascript

我有这个数组:

[{a: 1, b: 2}, {a: 2, b: 3}, {a: 3, b: 1},...]
Run Code Online (Sandbox Code Playgroud)

我想转换为这个数组:

[{a:1}, {a:2}, {a: 3}]
Run Code Online (Sandbox Code Playgroud)

我试过这个:

array.map(x => {'a': x.a}) 
Run Code Online (Sandbox Code Playgroud)

但这是一个错误(给出错误).JavaScript中有没有可以执行此操作的功能?谢谢

Fal*_*aly 7

使用括号包含隐式返回的对象并使用array.map的返回值:

let array = [{a: 1, b: 2}, {a: 2, b: 3}, {a: 3, b: 1}];
array = array.map(x => ({'a': x.a}));
console.log(array);
Run Code Online (Sandbox Code Playgroud)

甚至更短的ES6解构和速记对象时间:

let array = [{a: 1, b: 2}, {a: 2, b: 3}, {a: 3, b: 1}];
array = array.map(({a}) => ({a}));
console.log(array);
Run Code Online (Sandbox Code Playgroud)


gur*_*372 5

你几乎就在那里,只是将表达包裹起来 ()

map(x => ({'a': x.a}))
Run Code Online (Sandbox Code Playgroud)

演示

var output = [{a: 1, b: 2}, {a: 2, b: 3}, {a: 3, b: 1}].map(x => ({'a': x.a}));

console.log(output);
Run Code Online (Sandbox Code Playgroud)