用js reduce 写一个reduce循环遍历数组对象,里面带有if判断

发布时间 2023-08-29 11:18:41作者: 盘思动
  • 简单的reduce案例,实际场景中使用不多,这里给到一个常用的遍历数组对象!!
var products = [
  { name: "Apple", price: 2.5, quantity: 3 },
  { name: "Banana", price: 1.5, quantity: 2 },
  { name: "Orange", price: 3, quantity: 4 },
];

var totalPrice = products.reduce(function(accumulator, currentValue) {
  if (currentValue.price < 3) { // 如果商品价格小于3
    return accumulator + (currentValue.price * currentValue.quantity); // 累加
  } else {
    return accumulator; // 不满足条件则不进行累加-----这里一定要加上返回,每次循环都需要有返回,否则会返回undefined
  }
}, 0);

console.log(totalPrice); // 输出:7.5

在这个示例中,我们添加了一个条件判断,只有当商品价格小于3时才进行累加操作。如果商品价格大于等于3,则不进行累加。
最终得到的 totalPrice 值为 7.5,即满足条件的商品的价格与数量的乘积之和,即 2.5 * 3 + 1.5 * 2。
这个案例演示了如何在 reduce() 方法的回调函数中使用条件判断来选择是否进行累加操作。