aardio - reduce 函数详解

这篇博客介绍了JavaScript中的reduce函数基本用法,包括数组求和、数组元素转换和筛选操作。reduce函数允许无循环地处理数组,通过指定初始值和回调函数实现对数组的高效操作。文中详细解释了reduce函数的参数含义,并提供了多个示例来展示其灵活性和实用性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

基本用法

结构:

返回值 = reduce(数组,回调函数(结果,当前成员,当前索引),结果初始值)

用法:

返回值 = reduce(要操作的数组
                      ,function( 结果 /*初始值或上次结果*/ ,数组当前成员,数组当前索引){
                                      处理函数语句;
                                      return 本次结果;
                                      // 回调函数的返回值,即:修改结果值,结果 = 本次结果 
                                      // 同时在下次回调时,将该值作为第1个参数传给回调函数。
                                        }
                         , 结果初始值  // 指定结果的初始值:结果= 结果初始值
                         )
                         
// 【结果】的值在reduce结束后,会当做 reduce 的【返回值】返回。

官方论坛资料 by Jacen.He

用法1:数组值求和

import console;
var arr = {1;2;3;4;5}
var value = reduce(arr, lambda(a,b) a + b );
console.dump(value);
console.pause(true);

用法2:将数组中所有值转换为字符串

import console; 
var arr = {1;22;3;456}//将数组中的所有值转换为字符串
var value = reduce(arr,function(a,b,i){     a[ i ] = tostring(b)     return a;},{});
console.dump(value);
console.pause(true);

用法3,筛选数组中的值

import console; 
var arr = {1;22;3;456}//筛选出所有小于100的数
var value = reduce(arr,function(a,b){     if( b <100) table.push(a,b);    return a;},{});
console.dump(value);
console.pause(true);

重点摘录 NOTES

  • reduce 是一个经典的无循环函数。
  • 指定【结果初始值】时,回调函数 function的【结果】=【结果初始值】,数组成员从头到尾逐个遍历,【数组当前成员值】从第1个开始,【数组当前索引】从1开始。
  • 不指定【参考值的初始值】时,回调函数 function 的【结果】=【数组的第1个成员值】。顺理成章的,数组成员就不能再从第1个开始,而是跳过第1个,从第2个开始遍历。【数组当前成员值】从第2个开始,【数组当前索引】从2开始。所以,在此情况下,如果要操作的数组为空数组{}时,不指定初始值则会报错。因为空数组不存在“第1个成员值”,也就无法给“结果”赋值。
  • 初始值可以是任意对象,如: 123,{} ,“abc” 等。 最后一次赋值的【结果】,将作为 reduce 的最终返回值。
数组指定结果初始值回调函数 function()返回值(参考值)
空数组必须指定不执行结果 = 结果初始值
1个成员的数组如果指定初始值执行1次结果 = 本次结果
1个成员的数组如果不指定初始值不执行结果 = 第一个成员值
2个以上成员的数组皆可至少执行1次结果 = 最后一个本次结果

阅读心得 LEARNINGS

  • 很抽象的一个函数,很有趣的一个函数,很强大的一个函数。
  • 用心去理解每一个参数的意思。
  • 多看例子,了解如何灵活用reduce函数处理各种情况。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

卢光庆

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值