嵌套对象数组处理:如何统计商品总数与总价?
嘿,这问题其实没你想的那么复杂,我来给你一步步解决~
首先看你的数据结构,是个嵌套数组(外层数组包含多个商品数组),核心思路就是先把嵌套的数组“拉平”成一维数组,之后统计总数和计算总价就简单多了。
需求1:统计所有商品的总数
用JavaScript的flat()方法可以轻松把嵌套数组转成一维数组,然后直接取数组长度就是商品总数:
const totalItems = myArr.flat().length;
如果你的数组嵌套层数可能更深(比如三层甚至更多),可以用flat(Infinity)来处理任意深度的嵌套:
const totalItems = myArr.flat(Infinity).length;
需求2:计算所有商品的总价
同样先拉平数组,然后用reduce()方法来累加每个商品的price属性:
const totalPrice = myArr.flat().reduce((totalSum, product) => { return totalSum + product.price; }, 0); // 0是累加的初始值
或者写成更简洁的箭头函数形式:
const totalPrice = myArr.flat().reduce((sum, p) => sum + p.price, 0);
完整代码示例
把两个需求整合起来,运行一下就能看到结果:
const myArr = [ [{ id: 1, price: 200 }, { id: 2, price: 900 }, { id: 3, price: 100 }], [{ id: 5, price: 100 }] ]; // 统计商品总数 const totalItems = myArr.flat().length; console.log("商品总数:", totalItems); // 输出:4 // 计算商品总价 const totalPrice = myArr.flat().reduce((sum, product) => sum + product.price, 0); console.log("商品总价:", totalPrice); // 输出:1300
这样处理下来,两个需求就都搞定啦~
内容的提问来源于stack exchange,提问作者hamidreza nikoonia
相关产品推荐
相关产品推荐

