如何将对象数组解构为其键的多个数组?

leo*_*ess 2 javascript arrays object-destructuring

我的数据集是一个对象数组,它们都只有两个键(idname):

[{ id: 1, name: 'Foo'}, { id: 2, name: 'Bar'}, { id: 3, name: 'FooBar'}, { id: 4, name: 'BarFoo'}]
Run Code Online (Sandbox Code Playgroud)

我想以这样的方式解构它们,最终分别得到一个 id 数组和一个 name 数组:

[1, 2, 3, 4] // ids
['Foo', 'Bar', 'FooBar', 'BarFoo'] // name
Run Code Online (Sandbox Code Playgroud)

我这样做了,但我认为通过解构可能可以做得更好:

[{ id: 1, name: 'Foo'}, { id: 2, name: 'Bar'}, { id: 3, name: 'FooBar'}, { id: 4, name: 'BarFoo'}]
Run Code Online (Sandbox Code Playgroud)

小智 10

const arr = [
  { id: 1, name: 'Foo'}, 
  { id: 2, name: 'Bar'}, 
  { id: 3, name: 'FooBar'}, 
  { id: 4, name: 'BarFoo'}
]

const {ids, names} = {ids: arr.map(a => a.id), names: arr.map(a => a.name)}

console.log(ids)
console.log(names)
Run Code Online (Sandbox Code Playgroud)