问题
递归有什么简便方法,可以给每一层增加一个属性(标记第几层),如下图代码
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<script>
var data = [{
//第一层:index=1
id: '1',
name: 'a',
children: [{
//第二层:index=2
id: '1-1',
name: 'aa'
}, {
//第二层:index=2
id: '1-2',
name: 'ab',
children: [{
//第三层:index=3
id: '1-2-1',
name: 'aba',
}]
}]
}, {
//第一层:index=1
id: '2',
name: 'b',
}]
function forData(data) {
data.forEach((item, index) => {
item.index = index + 1;
if (item.children) {
forData(item.children)
}
})
}
forData(data)
console.table('data', data)
</script>
</body>
</html>
你就把level传到递归函数就可以了,大概思路如下(没测试~)