我有一个对象,其中数据是对象的数组,在数据对象内部,我有一个用户属性,它是一个数组。
我需要将所有用户都放在一个阵列中。我已经使用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)
您可以使用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)