js中reduce() 方法使用
reduce
reduce()方法接收一个函数作为累加器,reduce 为数组中的每一个元素依次执行回调函数,接受四个参数:初始值(上次回调得返回值),当前元素值,当前索引,原数组 。
参数 function(total,currentValue,currentIndex,arr);
1 2 3 4 5 6 7 | // total 必需。初始值,或者计算结束后得返回值。 // currentValue 必需。当前元素。 // currentIndex 可选。当前元素得索引 // arr 可选。当前元素所属的数组对象。 // initialValue 可选,传递给函数的初始值。 |
应用
1 2 3 4 5 6 7 8 9 10 11 | var orderDetail=[ {Id:1,name: "产品A" ,total:50 }, {Id:2,name: "产品B" ,total:20 }, {Id:3,name: "产品C" ,total:30 } ]; var sum=orderDetail.reduce( function (total,currentValue,currentIndex,arr){ return total=total+currentValue.total; },0) console.log(sum); // 100 |
以上回调被调用3次 。
callbak |
total |
currentValue |
currentIndex |
arr |
return |
第一次 |
0 |
{Id:1,name:"产品A",total:50} |
0 |
[{Id:1,name:"产品A",total:50 }, {Id:2,name:"产品B",total:20 }, |
50 |
第二次 |
50 |
{Id:2,name:"产品B",total:20} |
1 |
[{Id:1,name:"产品A",total:50 },
{Id:2,name:"产品B",total:20 }, |
70 |
第三次 |
70 |
{Id:3,name:"产品C",total:30} |
2 |
[{Id:1,name:"产品A",total:50 },
{Id:2,name:"产品B",total:20 }, |
100 |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?