数组reduce的基本使用,和吐槽

有个问题如下:

现有数组 let arr=[1,2,3,4];

需要计算出arr内所有值的和

解答方法1:

let arr=[1,2,3,4];
let tmp=0;
for(var i=0;i<arr.length;i++){
    tmp+=arr[i]
}

这个问题的解决并不难

但是看上面的代码,

tmp这个变量是没必要存在的完成就是个中介,用完就扔了。

还有在for里面使用var同样会带来副作用

同时这里还多了一个for遍历。


"我应该在哪来曾经看过这个问题的解决方案,但是我怎么也想不起来,到底在哪里见过。

我也曾经碰到过这个问题,最后还是向时间妥协,然后就忘记了这个茬....

有个现实的情况,如果你遇到了问题,而且你没有解决它,后面它依旧会不断的出现。而且往往是在紧要关头出现。

很遗憾,当初为什么不解决掉它。后悔当初~~~~的确不该。"

有时候真的有这种切肤之痛。。。。

今天面试的时候遇到了这个问题,,,,,,(⇀‸↼‶)......................

好吧其实这就是个ES6 API的问题。。但是阮老师的书里面貌似没有提及到他,那问题来了,之前我到底哪里看到过的。。。。

贴下代码如下:

sum = [1, 2, 3, 4, 5].reduce(function(prev, cur, index, arr) {
    return prevres + cur;
})

先推荐一个很好的网站:MDN

这次我是在这个网站下的

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/Reduce#Polyfill

 找到答案的,路径有点长。。。

里面还提供了好多ES6的实现方法(Polyfill),包括reduce

ES6语法现在基本上都是语法糖,执行的还是传统ES3的代码,但是不需要质疑的是ES6的确给开发和代码管理带来了许多遍历


我觉得接下来几天的时间都要献给它了





猜你喜欢

转载自blog.csdn.net/u014071104/article/details/79720281