你可以使用递归和 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 值累加到一个总和中。

JavaScript 递归和 reduce 方法计算嵌套数据 allTotal 总和

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

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