00:00
我们再来看一下ES6里边为数组新增的map和reduce方法,这跟我们使用JAVA8的map reduce效果都是一样的。来我们先来体会一下map,它的作用呢,是可以接收一个函数来,如果我们数组调用map方法给里边呢传一个函数,然后呢,它会将原来数组中的所有元素,利用我们传的这个函素进行处理以后再放到这个最新数组,比如呢,我们现在有一个功能,我想要将数组里边这几个元素,诶,看起来都是数字,其实它们是字符串,先变成数字,然后每一个都乘以二重新返回,那我们可以这么来写,那先呢,a.map诶数组呢,调用它的map方法里边呢要传一个函数,我们可以用最简单的方式写箭头函数,诶,小括号,先括号啊,这个箭头函数里边呢,这得有一个参数,哎,我们呢,写一个item,那就是数组里边的当前元素,那将每一个元素呢,给它乘二返回,比如呢,我。
01:01
来return item乘以,好我们乘二返回以后呢,我们再来打印这个数组,好我们让我们这个数组呢,就等于这样处理后的结果,我们保存来用open with lift so f12,我们来看一下控制台,这里边呢,会二,四十十啊,负16。我们发现呢,它确实每一个都乘二返回了,当我们最简单的写法,我们可以这么来写,AR等于ar.map箭头函数呢,由于它只有一个参数,我们可以不用写小括号,那就当前的item,然后尖括号,而且呢,我们这个运算完会直接返回,我们就可以在这直接写item乘二,那么将这个它会自动返回,哎,这两个效果是一样的,我们来看哎,二四十。还有呢,我们这个reduce方法,它呢也是利用我们自定义的函数来处理数组中的每一个元素,但是呢,它可以用到上一步处理的结果,比如呢,我们举一个例子,还是我们这个AR,当当然被我们这个map处理以后呢,它就变成了这么几个值,我们把这几个值呢,来测试一下reduce方法,好,这个AR调用呢reduce,但这个reduce呢,它的语法是这样子的,我们可以用一个数组点reduce,你可以传一个回调函数,也可以传一个初始值,我们现在呢,先来测试没有初始值的方法,而这个回调函数里边能传什么?既然能传回调函数,我们就直接来写一个箭头函数放在这儿,这个函数里边能传什么呢?来说这个函数里边啊,它可以有四个参数,这四个参数呢,分别代表这些意思。
02:49
如果第一个参数,它就代表上一次调用我们这个函数处理的值,或者呢,是我们后边传的这个初始值,第二个呢,就是我们当前正在被处理的元素,那第三个是我们当前数组中这个元素的数组中的索索引,还有第四个呢,就是我们调用reduce的这个数组啊那现在呢,就来用前两个上一个处理后返回的值和我当前处理的这个值,我们来先在控制台打印一下。
03:22
AB分别是多少?上一次处理后,处理后呢,变成了哪个值,然后呢,还有我们这个当前正在使用的是哪个值。当前正在处理哪个值,那我最终呢?比如我举一个例子,我想要将数组里边的所有值进行一个加和求总和,那么就可以来这么来写上一次呢,处理的值加上我当前的值,这不就是求总和吗?然后呢,我们给它return返回,我们来测试一下返回的这个AR。
04:03
返回的这个结果吧,这已经不是一个A了,来咱们这个result。好,我们打印一下我们这个结果,我们看这个处理完以后,它会返回什么保存们看到控制台在这呢得出38,而且呢,我们也能整个看到这个过程,先是处理二跟四十两个呢加和,上一次呢加和是42 42呢,再跟负十进行加和得32,再跟六进行加和得38,这相当于呢处理每一个元素用我们指定的方法。而且呢,我们这个也没有指定初始值,所以它呢是从二开始处理,二跟四十来加,当然我们也可以指定第一次处理时用的初始值,比如呢,我指定一个100,那相当于呢,第一次就是使用100跟二甲再来一次往后加来保存,看一下最终的结果呢,就是138,那上一次处理后是100,相当于第一次呢就是100,当前处理第一个元素100跟二往上加,一直这么加下来,这就是我们说的map radio,大家呢可以在下面测试了解一下。
我来说两句