reduce对数组及数组对象的常见操作

语法:

array.reduce(function(prev, currentValue, currentIndex, arr), initialValue)

prev: 初始值,或者是计算结束后的返回值
currentValue: 当前元素
currentIndex: 当前元素的索引
arr: 当前元素所属的数组对象
initialValue: 初始值

什么时候用它?

当多个数据最终变成一个数据的时候

有道面试题,给定一个数组,让我求它的平均数,我先用for循环利用每项累加,除以数组长度来计算的

面试官让我用其他方法解决,这时候就可以用reduce来解决

原数组 var arr = [1, 2, 3, 6, 8]

// 数组求和
var
sum = arr.reduce((prev, currentVal) => { return prev+ currentVal; }, 0)
// 平均数
var
average = arr.reduce((prev, currentVal) => { return (prev + currentVal) / arr.length; }, 0)
// 数组去重
var
newArr = arr.reduce((prev, cur) => { prev.indexOf(cur) === -1 && prev.push(cur); return prev; },[]);
复制代码
// 对象数组求和
var result = [
  { name: 'lily', age: 18 },
  { name: 'lucy', age: 20 },
  { name: 'lulu', age: 35 }
];
var sumAge = result.reduce((accumulator, cur) => {
  return accumulator + cur.age;
}, 0); 
复制代码
// 求数组最大值
var maxVal = arr.reduce((prev, cur) => {
  return prev > cur ? prev : cur;
}, 0); 

大概这些,后期再加~~

 

posted @   梁文璇say  阅读(281)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示