如何从嵌套数组对象中计算所有qty字段的总和?
计算所有
qty字段的总和 你可以通过以下两种简洁的方式,实现所有qty字段的求和:
方法一:嵌套reduce遍历
通过两层reduce,先累加每个分类下的产品数量,再汇总所有分类的结果:
const totalQty = xyz.reduce((total, category) => { const categorySum = category.product.reduce((sum, product) => sum + product.qty, 0); return total + categorySum; }, 0); console.log(totalQty); // 输出:10
方法二:扁平化数组后求和
先将所有分类下的产品数组合并为一个一维数组,再统一计算总和:
// 提取所有产品到同一数组 const allProducts = xyz.flatMap(item => item.product); // 累加所有qty值 const totalQty = allProducts.reduce((sum, product) => sum + product.qty, 0); console.log(totalQty); // 输出:10
你之前只得到第一个元素的总和,应该是只处理了xyz数组的第一个分类对象,没有遍历完整的分类列表。上述两种方法都会覆盖所有分类及其下的产品,确保累加全部qty值。
内容的提问来源于stack exchange,提问作者Krish Varma
相关产品推荐
相关产品推荐

