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

javascript二维数组(7)数组指定元素求和

项目需求

对指定数据中的score求和

const data = [  { name: 'Alice', age: 23, score: 85 },  { name: 'Bob', age: 30, score: 90 },  { name: 'Charlie', age: 35, score: 80 }  
];

1.封装函数

这个函数接受两个参数:一个对象数组和一个键名(也就是你想要相加的属性名)。函数使用了 reduce 方法来对数组进行迭代,并将每个对象中的指定属性的值加起来。

function sumByKey(array, key) {  return array.reduce((sum, obj) => {  return sum + (obj[key] || 0);  }, 0);  
}

2.使用 forEach 循环

function sumByKeyUsingForEach(array, key) {let sum = 0;array.forEach(obj => {sum += obj[key] || 0;});return sum;
}

这个函数和之前的 sumByKey 函数做的事情一样,只不过它使用了 forEach 循环来迭代数组,而不是 reduce 方法。

3.使用 every 方法

虽然 every 方法通常用于检查数组中的每个元素是否都满足某个条件,但也可以用它来计算对象数组中某个属性的总和。不过,这种方法可能会让代码更难理解:

function sumByKeyUsingEvery(array, key) {let sum = 0;array.every(obj => {sum += obj[key] || 0;return true; // 让 every 方法继续迭代数组});return sum;
}

这个函数和前面的两个函数做的事情一样,但它使用了 every 方法来迭代数组。注意,我们必须返回 true,以便 every 方法能够继续迭代数组。虽然这种方法可以达到目的,但它可能会让代码更难理解,因此不太推荐使用。


@漏刻有时

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

相关文章:

  • 网络安全——黑客自学(笔记)
  • Docker 安装 Elasticsearch7.16.x
  • springmvc-controller视图层配置SpringMVC处理请求的流程
  • 三模块七电平级联H桥整流器电压平衡控制策略Simulink仿真
  • 【window10】Dart+Android Studio+Flutter安装及运行
  • 【C++】运算符重载 ⑩ ( 下标 [] 运算符重载 | 函数原型 int operator[](int i) | 完整代码示例 )
  • ROS机械臂开发-开发环境搭建【一】
  • 深度思考rpc框架面经之五:rpc限流:rpc事务:tps测试
  • [AIGC] Java序列化利器 gson
  • VMware 虚拟机删除+重建
  • 环面上 FHE 的快速自举:LUT/Automata Blind Rotate
  • VScode配置文件launch.json 和 tasks.json配置项详细说明
  • DNSlog 注入简单笔记
  • HDLbits: Dualedge
  • 网络安全_黑客(自学)
  • AI 大框架分析基于python之TensorFlow(归一化处理,多类别分类的概率)
  • C++day01(QT简介、C++)
  • Web server failed to start. Port 8080 was already in use
  • new和malloc的区别
  • python:openpyxl 读取 Excel文件,显示在 wx.grid 表格中
  • 12P2532X152 KJ3222X1-BA1 CE4003S2B1 EMERSON DELTAV
  • P1014 [NOIP1999 普及组] Cantor 表
  • JMeter性能分析实战一:日常登录接口
  • 内外网结合的多服务发布架构
  • Unity中Shader的光照模型Lambert
  • (一)Log4Net - 介绍
  • [bug] mysql 时间与本地不一致
  • 【改造先序遍历】222. 完全二叉树的节点个数
  • windows文件和目录相关命令
  • TL-ER3220G端口映射设置