js高階函數


高階函數( Higher-order function ):JavaScript的一個函數就可以接收另一個函數作為參數,這種函數就稱之為高階函數。

例子:

function addition(x,y,z) {
    return z(x) + z(y);
}
addition(-3, -4, Math.abs); // ==> Math.abs(-3) + Math.abs(-4) ==> 7

 

JavaScript中的內置高階函數:

1. map(); // array.map(callback,[ thisObject]);

了解更多map方法

例子:

const arr = [1, 2, 3];
const newArr = arr.map(item => item * 2);
console.log(newArr); //[2, 4, 6]

2. reduce(); // array.reduce(function(total, currentValue, currentIndex, arr), initialValue); 

了解更多reduce方法

例子:

const arr = [1, 2, 3];
let sum = arr.reduce((accumulator, currentValue, currentIndex, array) => {
    return accumulator + currentValue;
});
console.log(sum); // 10
const arr = [1, 2, 3];
let sum1 = arr.reduce((accumulator, currentValue, currentIndex, array) => {
    return accumulator + currentValue;
}, 10);
console.log(sum1); // 20

3. filter(); // array.filter(callback(element[, index[, array]])[, thisArg])

了解更多filter方法

例子:

const arr = [1, 1, 2, 2, 3, 4, 3, 4, 5, 5, 4];
const newArr = arr.filter((ele, index, self) => {
    return self.indexOf(ele) === index;
});
console.log(newArr); // [1, 2, 3, 4, 5]

4. sort(); // arr.sort([compareFunction])

了解更多sort方法

例子:

const arr = [1, 20, 10, 5];
let compareNumbers= function (a, b) {
    return a - b;
}
const newArr = arr.sort(compareNumbers);
console.log(newArr); // [1, 5, 10, 20]

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM