原始數據:
{
name: '1',
children: [
{ name: '2', children: [{ name: '5' }] },
{ name: '3', children: [{ name: '6' }] },
{ name: '4', children: [{ name: '7' }] },
]
}
期望結果數據:
{
"name": "1第一層級",
"children": [{
"name": "2第二層級",
"children": [{
"name": "5第三層級"
}]
}, {
"name": "3第二層級",
"children": [{
"name": "6第三層級"
}]
}, {
"name": "4第二層級",
"children": [{
"name": "7第三層級"
}]
}]
}
代碼如下:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>遍歷每層級拼接不同的字符串</title>
</head>
<body>
<script>
var object = {
name: '1',
children: [
{ name: '2', children: [{ name: '5' }] },
{ name: '3', children: [{ name: '6' }] },
{ name: '4', children: [{ name: '7' }] },
]
}
function flattenItem (item, currentDeep = 0) {
var lists = ['第一層級','第二層級','第三層級','第四層級'];
item.name = item.name+lists[currentDeep]
if (item.children) {
item.children.map(function(child, index){
this.flattenItem(child, currentDeep + 1)
}).flat();
}
}
flattenItem(object)
console.log(object)
</script>
</body>
</html>