首页 > 其他分享 >用js reduce 写一个reduce循环遍历数组对象,里面带有if判断

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

时间:2023-08-29 11:22:04浏览次数:51  
标签:currentValue 遍历 price reduce 累加 totalPrice js quantity

  • 简单的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() 方法的回调函数中使用条件判断来选择是否进行累加操作。

标签:currentValue,遍历,price,reduce,累加,totalPrice,js,quantity
From: https://www.cnblogs.com/pansidong/p/17664287.html

相关文章

  • JS 原型和原型链
    原型和原型链-题目前言JS是基于原型prototype继承的语言ES6可使用类class继承(语法糖,本质还是原型继承)题目如何准确判断一个变量是数组类型实现一个简易的jQuery,考虑插件和扩展性——PS:虽然jQuery已应用不多,但借助学习原型非常好class是语法糖,其本质是......
  • js 水印
    initWatermark(){//创建一个canvasconstcanvas=document.createElement('canvas');//设置画布的宽高canvas.width=200;canvas.height=200;//获取画笔constctx=canvas.getContext('......
  • 大华智慧园区综合管理平台searchJson SQL注⼊漏洞
    漏洞简介大华智慧园区综合管理平台是一款综合管理平台,具备园区运营、资源调配和智能服务等功能。平台意在协助优化园区资源分配,满足多元化的管理需求,同时通过提供智能服务,增强使用体验。由于该平台未对用户输入数据做限制,攻击者可以直接将恶意代码拼接进SQL查询语句中,导致系统出......
  • Unity UnityWebRequest.Post传参Json数据
    UnityWebRequest.PostUnity中的HTTP通信主要依赖的是Unity自带的UnityWebRequest类,之前的WWW类已被弃用Post请求,向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST请求可能会导致新的资源的建立和/或已有资源的修改。对应的调用方法:UnityWebR......
  • 开发了一个json格式化工具,使用js格式化json的代码分享
    今天给大家介绍一下如何通过js来格式化json。假设json字符串是:{"name":"刘德华","age":25.2,"birthday":"1990-01-01"}我们使用的是Js的JSON方法先把json字符串转为json对象,方法如下:varjsonString='{"name":"刘德华","age":35.2......
  • JS变量的类型和计算
    变量类型和计算-知识点变量类型值类型和引用类型//值类型leta=100letb=aa=200console.log(b)//100//引用类型leta={age:20}letb=ab.age=21console.log(a.age)//21(画图解释其中的玄机——用一个excel表格即可表示)常见值类型const......
  • JS手写代码实现深拷贝
    /***深拷贝*/constobj1={age:20,name:'xxx',address:{city:'beijing'},arr:['a','b','c']}constobj2=obj1obj2.address.city='shanghai'console.log(o......
  • 剑指Offer 33. 二叉搜索树的后序遍历序列
    题目链接:剑指Offer33.二叉搜索树的后序遍历序列题目描述:输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历结果。如果是则返回true,否则返回false。假设输入的数组的任意两个数字都互不相同。解法思路:既然是二叉搜索树,那就一定满足以下性质:左子树<根<右子树;......
  • 【NestJS系列】核心概念:Middleware中间件
    前言用过express与koa的同学,对中间件这个概念应该非常熟悉了,中间件可以拿到Request、Response对象和next函数.一般来讲中间件有以下作用:执行任何代码对请求与响应拦截并改造结束request-response周期通过next()调用下一个中间件如果当前中间件没有结束当前request-respons......
  • 【C++STL基础入门】vector运算和遍历、排序、乱序算法
    @TOC前言C++标准库提供了丰富的容器和算法,其中vector是最常用的容器之一。它以动态数组的形式存储元素,并提供了许多方便的运算符和算法来操作和处理数据。本文将介绍vector的基本运算、遍历方法、排序算法以及乱序算法。通过学习这些内容,您将能够更加灵活、高效地使用vector容器。......