html52.com
我爱小程序-开发者交流社区

Array.reduce函数的callBack函数执行行为很奇怪?

给出一段代码,不知道大家有没有碰到过这样的问题:

let aaa = [1,2,3,4];
aaa.reduce(
(sum,item)=>{ console.log(sum,item); return sum;}
);

上面这段代码的执行没有问题。结果:

0 1
1 2
3 3
6 4

然后,有趣的来了:

把代码改成这样:

let aaa = [1];
aaa.reduce(
(sum,item)=>{ console.log(sum,item);return sum;}
);

你是不是以为会运行一次,至少输出:

0 1

这样?不是的,,结果是什么输出都没有。。。

然后,你再把sum的初始值设置一下:

let aaa = [1];
aaa.reduce(
(sum,item)=>{ console.log(sum,item);return sum;},
0
);

打印又出现了:

0 1

这个坑我调了好久才发现。。不知道大家有没有遇到过一样的情况。目前我还没有试过是JS本身的问题,还是小程序的JS内核解释器的bug。

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

真正的个人免签约支付接口

云免签H5支付