let sum = arr.map(item => item.value).reduce((v1, v2) => v1 + v2);
console.log(arr.map(item => item.label).join(' + ') + ' = ' + sum)
let queue = [...arr]
while (queue.length) {
let item = queue.shift();
if (item.children && item.children.length) {
console.log(item.children.map(item => item.label).join(' + ') + ' = ' + item.children.map(item => item.value).reduce((v1, v2) => v1 + v2));
queue.push(...item.children)
}
}
数据结构如下:
let arr = [
{
value: 1,
label: 'A',
children: [
{
value: 2,
label: 'B',
children: [
{
value: 3,
label: 'C'
}
]
}
]
},
{
value: 4,
label: 'AA',
children: [
{
value: 5,
label: 'BB',
children: [
{
value: 6,
label: 'CC'
}
]
},
{
value: 7,
label: 'BB2',
children: [
{
value: 8,
label: 'CC2'
}
]
}
]
}
]
结果如图