关闭

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

标签: es6数组API
6852人阅读 评论(0) 收藏 举报

开始学习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函数在查找时,一旦数组中的某一个元素符合查找条件,则立即返回。

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:10254次
    • 积分:258
    • 等级:
    • 排名:千里之外
    • 原创:16篇
    • 转载:1篇
    • 译文:0篇
    • 评论:0条
    文章存档