Lavender的博客

不怕万千阻碍,只怕自己投降。

整理ES6中常用的几个数组API

开始学习es6时,对于数组的几个常用的API不是很清楚,经过一段时间的学习,不敢说已经非常熟悉,学习是一个漫长的过程,整理一下在使用这些API过程中的一些心得体会。

no.1  map

map函数可以看成一种映射函数,而且是一一映射,几个萝卜几个坑。


array.map(function(参数){

....

函数体

......

})

es6提出了箭头函数,所以也可以写成:

array.map((参数)=>{

....

函数体

......

})


例子:[1.2.3].map((x)=>{

return x+1;

})                      //[2,3,4]


map适合用于对一个数组的每一个元素做一个相同的操作时,例如:每一个元素加上某一个值或者减去某一个值,这个时候map函数就该上场了。

no.2  filter

filter函数可以看成是一个过滤函数,就像一个筛子,筛去不符合条件的元素。


filter函数和map很相似,但它们之间有不同之处,起初在这两个函数之间犯了很多迷糊。filter与map的区别之一:filter函数需要返回一个true或者false,如果是true,才会返回这个元素,如果是false,则不返回。而map没有这一过程。

array.filter(function (参数){

...

函数体

...

})

或者:

array.filter((参数)=>{

...

函数体

...

})


例子:[1.2.3].filter((x)=>{

return x%2===0;

})                      //[2]


fliter函数适合用于筛选一个数组中满足某一条件的元素,但要注意的是,fliter函数只是筛选功能,它不能对数组中的元素做其他操作,换句话说,就是不能改变数组的元素。

no.3 reduce

reduce函数可以理解成一个迭代函数。

array.reduce(function (previous,current,index,array){

...

函数体

...

},[initialValue])

也可以写成:

array.reduce( (previous,current,index,array)=>{

...

函数体

...

},[initialValue])

例子:

[1,2,3,4].reduce((previous,current)=>{

return previous+current;

})     //10

我觉得reduce函数的特殊之处就在于它的回调函数,四个参数分别代表:之前值,当前值,索引值,数组本身。这里的previous值取决于[initialValue],如果[initialValue]指定时,则作为previous的初始值,也可以为空数组[],如果缺省的话,则将数组的第一个元素作为previous的初始值,下一次循环时,之前值就是上一次的当前值,而当前值会变成下一个索引所对应的元素,依次类推。

no.4 find

find函数的即查找函数。

array.find((参数)=>{

...

函数体(查找条件)

...

})


例子:

[1,2,3,4].find((value)=>{

return value>2;

})              //3

要注意的是find函数在查找时,一旦数组中的某一个元素符合查找条件,则立即返回。

阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Lavenderxiaokeai/article/details/52356869
文章标签: es6 数组 API
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭