对数组中每个对象对某个值进行求和

ゝ一世哀愁。 2022-11-21 11:17 296阅读 0赞

当我们在进行一些求和操作的时候就会使用数组的reduce方法。

  1. let total = 0;
  2. let array = [1, 2, 3, 4, 5];
  3. total = array.reduce((prev, next) => {
  4. return prev + next;
  5. }, 0);
  6. console.log(total);

例如我们数组里面是几个商品的价格,怎么去求商品总价呢
开始我是这么处理的,代码如下

  1. let totalPrice = 0;
  2. let goodsList = [
  3. {
  4. price: 20
  5. },
  6. {
  7. price: 30
  8. },
  9. {
  10. price: 50
  11. }
  12. ];
  13. totalPrice = goodsList.reduce((prev, next) => {
  14. return prev.price + next.price;
  15. });

上面代码看着没有任何毛病,但是,结果就会出现NaN。因为prev是前几项的和,结果是个数字怎么能有price属性,结果就为undefined。所以总和就是NaN。

应该改为:

  1. let totalPrice = 0;
  2. let goodsList = [
  3. {
  4. price: 20
  5. },
  6. {
  7. price: 30
  8. },
  9. {
  10. price: 50
  11. }
  12. ];
  13. // 默认传如一个参数0,prev的第一项就是0,每次加上下一次的价格即可
  14. totalPrice = goodsList.reduce((prev, next) => {
  15. return prev + next.price;
  16. }, 0);

发表评论

表情:
评论列表 (有 0 条评论,296人围观)

还没有评论,来说两句吧...

相关阅读