原來地址:javascript小記一筆——(高階函數(shù)治唤、map、reduce糙申、filter宾添、sort、reverse)
轉載請注明出處柜裸!
高階函數(shù)就是可以將函數(shù)作為另一個函數(shù)的參數(shù)缕陕。例如:將兩個數(shù)的平方相加,這里匿名函數(shù)fn就是函數(shù)被作為參數(shù)。
function add(a,b,fn){
return fn(a)+fn(b);
}
var fn=function (a){
return a*a;
}
add(2,3,fn);
1.map作用在數(shù)組的每個元素上的函數(shù)疙挺。例如:將數(shù)組arr的每個元素都加上10扛邑。
var arr=[5,6,7,8,9];
var fn=function(a){
return a+10;
}
console.log(arr.map(fn));
2.reduce也作用在數(shù)組上,但是每次只能接受兩個參數(shù)铐然。例如:將數(shù)組arr的每個元素相加蔬崩,因為元素為字符串,所以連接在一起搀暑。
var arr=["小","明","喜","歡","學","習"];
var fn=function(a,b){
return a+b;
}
console.log(arr.reduce(fn));
也可以寫成:
var arr=["小","明","喜","歡","學","習"];
function fn(arr){
return arr.reduce(function(a,b){
return a+b;
})
}
console.log(fn(arr));
3.filter用于過濾數(shù)組的元素沥阳。例如:過濾掉arr內(nèi)的偶數(shù)。
var arr=[1,2,3,4,5,6,7,8,9,10];
var fn=arr.filter(function(x){
return x%2!=0;
})
console.log(fn);
4.sort用于將數(shù)組進行排序自点,此函數(shù)默認會將數(shù)組內(nèi)的元素轉換成字符串類型進行排序桐罕,且按照大寫在前的規(guī)律排序。
var arr=["X","y","Z","A","b","C"];
console.log(arr.sort());
忽略大小寫進行排序。
如果倒敘的話將1與-1的值交換功炮。
function fn(a,b){
var a1=a.toLowerCase();
var b1=b.toLowerCase()
if(a1>b1){
return -1;
}
if(a1<b1){
return 1;
}
return 0;
}
var newArr=arr.sort(fn);
console.log(newArr);
當然也有一個倒敘的函數(shù)
console.log(newArr.reverse());
本文完溅潜!
如果覺得對自己有幫助,可以點個贊哦薪伏!謝謝大家滚澜!