JavaScript 递归和 reduce 方法计算嵌套数据 allTotal 总和
你可以使用递归和 reduce 方法来实现这个功能。下面是一个示例代码:
const data = [
{
'allTotal': 10,
'children': [
{
'allTotal': 5,
'children': [
{
'allTotal': 2,
'children': []
},
{
'allTotal': 3,
'children': []
}
]
},
{
'allTotal': 8,
'children': [
{
'allTotal': 4,
'children': []
},
{
'allTotal': 6,
'children': []
}
]
}
]
}
];
function sumAllTotal(data) {
return data.reduce((accumulator, currentValue) => {
const allTotal = currentValue.allTotal + sumAllTotal(currentValue.children);
return accumulator + allTotal;
}, 0);
}
const total = sumAllTotal(data);
console.log(total); // 输出:38
在上面的代码中,sumAllTotal 函数使用递归来遍历数据,并通过 reduce 方法将所有的 allTotal 值相加。如果当前项有 children 属性,那么递归调用 sumAllTotal 函数来计算子项的 allTotal 值,并将其与当前项的 allTotal 值相加。最后将所有的 allTotal 值累加到一个总和中。
原文地址: https://www.cveoy.top/t/topic/paPr 著作权归作者所有。请勿转载和采集!