【发布时间】:2020-04-02 09:57:56
【问题描述】:
我得到了以下数组:
let data = [
{"title": {number: 1},
"children": [
{"title": {number: 1.1}},
{"title": {number: 1.2}},
{"title": {number: 1.3}},
{"title": {number: 1.4}},
{"title": {number: 1.5}}
]
},
{"title": {number: 2},
"children": [
{"title":{number: 2.1}},
{"title":{number: 2.2},
"children": [
{"title":{number: 2.2.1}},
{"title":{number: 2.2.2}},
{"title":{number: 2.2.3}},
{"title":{number: 2.2.4}}
]
},
{"title":{number: 2.3}},
{"title":{number: 2.4}}
]
},
{"title": {number: 3},
"children": []
}
];
这个数组的每个元素都可以改变它的位置,可以添加新元素,可以删除现有元素。任务是重新计算元素编号以保持其正确顺序。例如,如果删除编号为2.2.2 的元素,则其他元素变为2.2.1、2.2.2 和2.2.3。如果某个元素连同其子元素一起被移除,则所有其他元素的数字也应重新计算。欢迎任何想法如何做到这一点。谢谢
【问题讨论】:
-
为什么要有数字。它们很容易从层次结构中计算出来
-
任何想法如何从层次结构中找出它们?据我了解,我需要递归跟踪嵌套级别并为相关元素添加增量...
-
是的,你需要递归。但正如您所见,
data[0].title是第一个标题,data[1]title是第二个。data[1].children[0]是 2.1 等
标签: javascript