你可以使用以下递归函数来实现这个需求:

function sumTotal(lists) {
  let sum = 0;
  for (let i = 0; i < lists.length; i++) {
    sum += lists[i].allTotal;
    if (lists[i].children) {
      sum += sumTotal(lists[i].children);
    }
  }
  return sum;
}

console.log(sumTotal(lists));

这个函数将会遍历给定的数组,将每个对象的allTotal字段的值相加。如果对象有children字段,那么会递归调用sumTotal函数来计算子节点的总和,并将其加入总和中。最后返回总和的值。

在这个例子中,函数将会输出124800

JavaScript 递归算法计算嵌套数据中所有 'total' 字段的总和

原文地址: https://www.cveoy.top/t/topic/o99S 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录