Kam*_*zyk 1 javascript nested object depth
我有一个嵌套对象的示例数组:
let arr = [{id: 0, children: []},
{id: 1, children:[
{id: 2, children: []},
{id: 3, children: [
{id: 4, children: []}
]}
]}
];
Run Code Online (Sandbox Code Playgroud)
我需要计算每个对象的深度级别。在所有对象中我也有一个parentId 属性。
结果应该是:
let arr = [{id: 0, depth: 0, children: []},
{id: 1, depth: 0, children:[
{id: 2, depth: 1, children: []},
{id: 3, depth: 1, children: [
{id: 4, depth: 2, children: []}
]}
]}
];
Run Code Online (Sandbox Code Playgroud)
我也有一个平面结构中所有对象的数组。
解决方案?
只需创建一个函数,该函数接受一个数组和一个depth参数,将该深度添加到数组中的所有对象。children然后以递增的深度在数组上调用它:
let arr = [{id: 0, children: []},{id: 1, children:[{id: 2, children: []},{id: 3, children: [{id: 4, children: []} ]}]}];
function addDepth(arr, depth = 0) {
arr.forEach(obj => {
obj.depth = depth
addDepth(obj.children, depth + 1)
})
}
addDepth(arr)
console.log(arr)Run Code Online (Sandbox Code Playgroud)