JavaScript如何对二维数组子数组最后一个元素求和并统计商品总数
实现方案
你可以直接用JS内置的reduce方法一次遍历拿到两个统计值,不需要手动写循环逻辑:
// 一次遍历同时计算两个目标值 const { totalLastField, totalQuantity } = products.reduce((acc, cur) => { acc.totalLastField += cur.at(-1); // 取子数组最后一个字段累加,也可以直接写cur[4] acc.totalQuantity += cur[3]; // 子数组第4个字段为商品数量 return acc; }, { totalLastField: 0, totalQuantity: 0 });
按你给出的示例数组计算可得:
- 最后一个字段总和为
239 - 商品总数量为
474
关于是否需要循环的说明
如果你说的「循环」指手动编写for/while迭代控制逻辑,那不需要,用JS内置的数组高阶方法就能完成需求。但不管用高阶方法还是手动写循环,底层本质都会遍历整个数组,只是高阶方法帮你封装了迭代的控制逻辑而已。
如果你偏好更直白、兼容性更好的写法,也可以用基础for循环实现:
let totalLastField = 0, totalQuantity = 0; for (let i = 0; i < products.length; i++) { const item = products[i]; totalLastField += item[4]; totalQuantity += item[3]; }
内容的提问来源于stack exchange,提问作者Avmeade
相关产品推荐
相关产品推荐

