JavaScript高階函數map和filter講解

Array.map()

定義: 對數組的每個元素調用定義的回調函數并返回包含結果的數組

調用方式:
1.Array.map(callback(element,index,array){})

2.Array.map(callback)
function callback(element,index,array){}

參數:
element:數組當前被調用的元素
index:數組當前被調用元素的索引
array:當前被調用元素的數組(數組本身)

實例:

    //實例一:求圓面積
    //定義3個圓的半徑
    var circle = [7,8,9];
    circle.map((element) => { return Math.PI * element * element });
    //circle = [Math.PI * 7 * 7,Math.PI * 8 * 8,Math.PI * 9 * 9]

    //實例二:求數組內元素%10后的結果
    var array = [11,22,33,44,55];
    array.map((element) => { return element % 10 });
    //array = [1,2,3,4,5]

   //實例三:求平方根
   var array = [16,25,36];
   array.map(Math.sqrt);
   //array = [4,5,6]

Array.filter()

定義:filter把傳入的函數依次作用于每個元素,然后根據返回值是True or False決定保留還是舍棄該元素,并返回新的數組。

調用方式:
1.Array.filter(callback(element,index,array){})

2.Array.filter(callback)
function callback(element,index,array){}

參數:
element:數組當前被調用的元素
index:數組當前被調用元素的索引
array:當前被調用元素的數組(數組本身)

實例:

    //實例一:獲取一個數組的偶數
    var array = [2,5,6,9,4,7];
    array.filter( (element) => { return element % 2 == 0});
    //array = [2,6,4]
    //實例二:去除Array的重復元素
    var array = ["li","wang","xie","zhang","wang","li"];
    array.filter( (element,index,array) => { return array.indexOf(element) === index});
    //array = ["li","wang","xie","zhang"]

indexOf()返回數組下標0開始的第一個元素的位置。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容