javascript高階函式---filter---map---reduce

weixin_47450807發表於2020-10-25

javascript高階函式—filter—map—reduce

高階函式就是給函式傳入的引數就是一個函式,例如

filter(function(){.....})

這裡就以陣列為例

  1. filter用法
    filter的漢語意思就是過濾的意思,在陣列中就是將不滿足條件的資料過濾掉。過濾後的陣列元素存放在新的陣列中。
    例子:
 <script>
    let arr_1=[10,12,34,56,100,120,222];
    let arr_2=arr_1.filter(function(item){
      return item<100;
    })
    console.log(arr_2);
  </script>

這裡的return就是將滿足條件的值,返回到陣列中。

  1. map用法
    map函式就是對陣列中的元素進行相關的操作
    例子:
 <script>
    let arr_1=[10,12,34,56,100,120,222];
    let arr_2=arr_1.map(function(item){
      return item*2
    })
    console.log(arr_2);
  </script>
  1. reduce用法
    reduce可以傳入兩個引數,一個是函式,另一個是起始值。
    函式中的引數也有兩個fun(previous,now),一個是前一個值,另一個是當前值。講到這裡大家可能不是特別理解,下面舉一個例子:
<script>
    let arr_1=[10,12,34,56,100,120,222];
    let arr_2=arr_1.reduce(function(previous,now){
      return previous+now;
    },0)
    console.log(arr_2);
  </script>

這裡的最終返回值是554。就是令previous這個引數為第二個引數的值,也就是0,然後執行previous+now,這裡的now是從第一個開始遍歷的,然後將加起來的值,再賦值給previous,這樣就實現累加的效果。

相關文章