将对象数组中的多个数组合并为一个数组

DIL*_*MAS 3 javascript arrays

我有一个对象,其中数据是对象的数组,在数据对象内部,我有一个用户属性,它是一个数组。

我需要将所有用户都放在一个阵列中。我已经使用map和编写过concat

有什么办法可以使我有更好的解决方案,还是正确的?

请参见下面的代码段。

var response = {data: [{users: [1,2,3]}, {users: [4,5,6]}]}

var users = response.data.map(o => o.users)

const usersCollection = [].concat(...users)

console.log(usersCollection)
Run Code Online (Sandbox Code Playgroud)

Mam*_*mun 5

您可以使用Array.prototype.flat()

flat()方法创建一个新数组,将所有子数组元素递归连接到该数组中,直到指定的depth为止。

depth | Optional

指定嵌套数组结构应展平的深度级别。默认为1。

var response = {data: [{users: [1,2,3]}, {users: [4,5,6]}]}

var users = response.data.map(o => o.users).flat();

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