JS高阶函数

2017-11-18  本文已影响0人  thebestduleisi

1.map: var arr=[1,2,3,4]; arr.map(function_name); 这传入的方法会把数组中每个值运行一遍;数组转字符串:arr.map(String);

2.reduce: reduce必须接收两个参数:[a,b,c,d].reduce(function_name) = f(f(f(a,b),c),d);可以计算数组的积 或和;

3.filter也是一个常用的操作,它用于把Array的某些元素过滤掉,然后返回剩下的元素;filter()把传入的函数依次作用于每个元素,然后根据返回值是true还是false决定保留还是丢弃该元素. 例:去除重复元素,删除偶数

arr.filter(function(x){                                                                        arr.filter(function(x,index,self){

return x/2 !== 0;                                                                                         return self.indexOf(x) === index;

})//返回奇数                                                                                        })//去除重复的

4.sort:对于两个元素x和y,如果认为x < y,则返回-1,如果认为x == y,则返回0,如果认为x > y,则返回1

arr.sort(function(x,y){})

5.箭头函数 x=>x*x  == function(x){return x*x};  多个参数用()   (x,y,...rest)=>...     ...rest可变参数除了x,y其余的参数

6.generator 生成器;generator由function*定义(注意多出的*号),并且,除了return语句,还可以用yield返回多次

function* incre_id(){ var oid = 1; while(true){ yield v++;}}  自增id例子

7.闭包:将一个函数作为返回值.http://www.ruanyifeng.com/blog/2009/08/learning_javascript_closures.html

上一篇 下一篇

猜你喜欢

热点阅读