如何计算嵌套JavaScript对象的深度级别?
我们有一个对象数组,其中进一步包含这样的嵌套对象-
const arr = [{
id: 0, children: []
}, {
id: 1, children: [{
id: 2, children: []
}, {
id: 3, children: [{
id: 4, children: []
}]
}]
}];我们的工作是编写一个递归函数,比如说assignDepth()要接受此数组并为每个嵌套对象分配depth属性。像id为0的对象的深度为0,id1的深度也为1,由于id2和id3嵌套在id1内,它们的深度为1,id4进一步嵌套在id3的内部则深度为2。
因此,让我们为该函数编写代码。这是一个简单的递归函数,它反复遍历子对象,直到到达数组的末尾-
示例
const arr = [{
id: 0, children: []
}, {
id: 1, children: [{
id: 2, children: []
}, {
id: 3, children: [{
id: 4, children: []
}]
}]
}];
const assignDepth = (arr, depth = 0, index = 0) => {
if(index < arr.length){
arr[index].depth = depth;
if(arr[index].children.length){
return assignDepth(arr[index].children, depth+1, 0);
};
return assignDepth(arr, depth, index+1);
};
return;
};
assignDepth(arr);
console.log(JSON.stringify(arr, undefined, 4));输出结果
控制台中的输出将为-
[
{
"id": 0,
"children": [],
"depth": 0
},
{
"id": 1,
"children": [
{
"id": 2,
"children": [],
"depth": 1
},
{
"id": 3,
"children": [
{
"id": 4,
"children": [],
"depth": 2
}
],
"depth": 1
}
],
"depth": 0
}
]热门推荐
1 送蛇的祝福语简短
3 合字的祝福语简短
6 十月简短祝福语
9 足球队祝福语简短
10 生日祝福语大全女生简短
11 校长退休文案祝福语简短
12 朋友花篮开业祝福语简短
13 小姨生日祝福语简短独特
14 老师对学校祝福语简短
15 简短的出行工作祝福语
16 祝女性生日祝福语简短
17 六一婚礼文案祝福语简短
18 宝宝满月写真祝福语简短