js 高階函數(map/reduce/filter/sort)


1.map - 方法返回一個新數組,數組中的元素為原始數組元素調用函數處理后的值(注:map不會對空數組進行檢測,不會改變原始數組)

  語法:array.map(function(currentValue,index,arr), thisValue)

  參數解釋:

      currentValue:必須。當前元素的值

      index:可選。當前元素的索引值

      arr:可選。當前元素屬於的數組對象

      thisValue:可選。對象作為該執行回調時使用,傳遞給函數,用作 "this" 的值。如果省略了 thisValue,或者傳入 null、undefined,那么回調函數的 this 為全局對象。

  示例: 

function pow(x) {
    return x * x;
}
var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
var results = arr.map(pow);
console.log(results); // [1, 4, 9, 16, 25, 36, 49, 64, 81]

2.reduce- 方法接收一個函數作為累加器,數組中的每個值(從左到右)開始縮減,最終計算為一個值。

  語法:array.reduce(function(total, currentValue, currentIndex, arr), initialValue)

  參數解釋:

      total:必需。初始值, 或者計算結束后的返回值。

      currentValue:必需。當前元素

      currentIndex:可選。當前元素的索引

      arr:可選。當前元素所屬的數組對象。

      initialValue:可選。傳遞給函數的初始值

  示例:

var arr = [1, 3, 5, 7, 9];
arr.reduce(function (x, y) {
    return x + y;
}); // 25

 3.filter - 用於把Array的某些元素過濾掉,然后返回剩下的元素。filter()接收一個函數把傳入的函數依次作用於每個元素,然后根據返回值是true還是false決定保留還是丟棄該元素.

 語法:array.filter(function(currentValue,index,arr), thisValue)

  參數解釋:

      currentValue:必須。當前元素的值

      index:可選。當前元素的索引值

      arr:可選。當前元素屬於的數組對象

      示例:

//在一個Array中,刪掉偶數,只保留奇數
var arr = [1, 2, 4, 5, 6, 9, 10, 15];
var r = arr.filter(function (x) {
    return x % 2 !== 0;
});
r; // [1, 5, 9, 15]

4.sort -  用於Array排序。默認把所有元素先轉換為String再排序,也可以接收一個比較函數來實現自定義的排序(注:sort()方法會直接對Array進行修改,它返回的結果仍是當前Array

  示例:

//數字大小排序
var arr = [10, 20, 1, 2];
arr.sort(function (x, y) {
    if (x < y) {
        return -1;
    }
    if (x > y) {
        return 1;
    }
    return 0;
});
console.log(arr); // [1, 2, 10, 20]

  

 


免責聲明!

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



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