我正在尝试将分层数组的转换泛化为平面数组。我有这种对象,它有相同类型的孩子,有相同类型的孩子等等。
[{
id: "123",
children: [
{
id: "603",
children: [
{
id: "684",
children: [
...
]
},
{
id: "456",
children: []
}
]
}
]
}]
Run Code Online (Sandbox Code Playgroud)
我找到了一种展平它的方法,并且我有嵌套层数的信息。一层深(作品):
let result = myArray.flat()
.concat(myArray.flatMap(comm => comm.children));
Run Code Online (Sandbox Code Playgroud)
两层深(作品):
let result = myArray.flat()
.concat(myArray.flatMap(comm => comm.children))
.concat(myArray.flatMap(comm => comm.children.flatMap(comm2 => comm2.children)));
Run Code Online (Sandbox Code Playgroud)
但是如何在函数中生成此代码以处理任何深度?我已经尝试过这个,但它不起作用:
flatFunct = (myArray, deep) => {
let func = comm => comm.children;
let flatMapResult = myArray.flat();
for (let i = 0; i < deep; i++) {
flatMapResult = flatMapResult.concat(() …Run Code Online (Sandbox Code Playgroud)