当前位置: 首页 > news >正文

reduce累加器的应用

有如下json数据,需要统计Status的值为0和1的数量

const data = {"code": "001","results": [{"Status": "0",},{"Status": "0",},{"Status": "1",}]
}

方法一:用reduce方法

const countObj = data.results.reduce((acc, result) => {if (result.Status === 0) {acc.countZero++;} else if (result.Status === 1) {acc.countOne++;}return acc;
}, { countZero: 0, countOne: 0 });console.log(countObj.countZero);
console.log(countObj.countOne);

具体语法如下:

// reduce函数用于将数组中的元素通过指定的函数进行累积计算,最终得到一个值。
// 语法:array.reduce(callback(accumulator, currentValue, currentIndex, array), initialValue)
// 参数说明:
// - callback: 用于处理每个元素的函数,包括累积器(accumulator)、当前值(currentValue)、当前索引(currentIndex)和原数组(array)。
// - initialValue: 可选参数,作为累积器的初始值。// 示例:
const arr = [1, 2, 3, 4, 5];
const sum = arr.reduce((accumulator, currentValue) => accumulator + currentValue, 0);
console.log(sum); // 输出 15,即数组元素的总和

方法二:用map方法

countObj = { countZero: 0, countOne: 0 };
data.results.map(result => {if (result.Status === 0) {countObj.countZero++;} else if (result.Status === 1) {countObj.countOne++;}
});console.log(countObj.countZero);
console.log(countObj.countOne);

reduce函数通常比map函数性能更好,因为reduce可以在单次迭代中完成累加操作,而map需要创建一个新的数组。因此,建议使用reduce函数来累加计数器以获得更好的性能表现。

http://www.lryc.cn/news/265412.html

相关文章:

  • 助力硬件测试工程师之EMC项目测试。
  • Github 2023-12-23 开源项目日报 Top10
  • Quartz.net 正则表达式触发器
  • 【已解决】修改了网站的class样式name值,会影响SEO,搜索引擎抓取网站及排名吗?
  • 微信小程序开发系列-02注册小程序
  • 安装 PyCharm 2021.1 保姆级教程
  • 浏览器 cookie 的原理(详)
  • StringBuilder和StringBuffer区别是什么?
  • 【数据分析】数据指标的分类及应用场景
  • 首涂第二十八套_新版海螺M3多功能苹果CMSv10自适应全屏高端模板
  • MatGPT - 访问 OpenAI™ ChatGPT API 的 MATLAB® 应用程序
  • Tomcat转SpringBoot、tomcat升级到springboot、springmvc改造springboot
  • 浅述无人机技术在地质灾害应急救援场景中的应用
  • js-cookie的使用以及存储token安全的注意要点
  • Android 网络状态判断
  • 管理类联考——数学——真题篇——按知识分类——代数——数列
  • .net core webapi 自定义异常过滤器
  • SuperMap iServer发布的ArcGIS REST 地图服务如何通过ArcGIS API加载
  • python调用GPT API
  • ModuleNotFoundError: No module named ‘tensorflow‘
  • 智能优化算法应用:基于鹰栖息算法3D无线传感器网络(WSN)覆盖优化 - 附代码
  • 自定义Taro上传图片hooks(useUploadImg)
  • 量子密码学简介
  • 使用docker创建自己的Android编译容器
  • 4-Docker命令之docker load
  • 微信小程序格创校园跑腿小程序源码v1.1.64+前端
  • 【单元测试】测还是不测,这是一个问题
  • Global Mapper SDK 19 中文开发文档(八)
  • es检索之复合检索
  • 09.list 容器