JS 陣列的迭代方法

要吃早餐發表於2018-06-28
  • forEach()

    對陣列中的每一項執行給定函式,這個方法沒有返回值。如果是基本型別,在迴圈中操作這些資料,不會改變原陣列。如果是引用型別,在迴圈中改變了資料,就會改變原陣列。

    語法

    array.forEach(callback(currentValue, index, array) {
         // 
    }, this)
    複製程式碼

    引數

    callback
    為陣列中的每個元素執行的函式,該函式接受三個引數:\

    1、currentValue( 當前值 ) 陣列中正在處理的當前元素
    2、idnex(索引)陣列中正在處理的當前值的索引
    3、array(陣列)當前正在處理的陣列\

    thisArg可選
    可選引數,當執行回撥時用作this的值。

    返回值
    undefined 不會改變原陣列

    描述
    1、沒有辦法跳出或終止 forEach 迴圈。
    2、如果在迭代中刪除了元素,之後的元素會被跳過。

  • every()

    測試陣列的所有元素是否都通過了指定函式的測試。一般有需要終止的迴圈,也會使用這個方法或者some()方法。
    為陣列中的每一個元素執行一次 callback函式,直到找到一個使 callback返回 false的元素。這個時候就會終止迴圈返回 false ,沒有的話就全部迴圈完畢,返回 true

    語法

    arr.every(callback(current, index, array) { }, thisArg);
    複製程式碼

    引數

    callback
    為陣列中的每個元素執行的函式,該函式接受三個引數:

    1、currentValue( 當前值 ) 陣列中正在處理的當前元素
    2、idnex(索引)陣列中正在處理的當前值的索引
    3、array(陣列)當前正在處理的陣列

    thisArg可選
    可選引數,當執行回撥時用作this的值。

    返回值
    如果回撥函式返回falsey值,就返回false,否則返回 true。 不會改變原陣列

  • some()

    測試陣列的所有元素是否都通過了指定函式的測試。一般有需要終止的迴圈,也會使用這個方法或者every()方法。
    為陣列中的每一個元素執行一次 callback函式,直到找到一個使 callback返回 true的元素。這個時候就會終止迴圈返回 true ,沒有的話就全部迴圈完畢,返回 false

    語法

     arr.some(callback (currentValue, index, array) { }, thisArg);
    複製程式碼

    引數

    callback 為陣列中的每一個元素執行的函式,該函式接受三個引數:

    1、currentValue( 當前值 ) 陣列中正在處理的當前元素
    2、idnex(索引)陣列中正在處理的當前值的索引
    3、array(陣列)當前正在處理的陣列

    thisArg可選
    可選引數,當執行回撥時用作this的值。

    返回值
    如果回撥函式返回 truthy值,就返回 true; 否則返回 false; 不會改變原陣列

  • filter()

    建立一個新陣列,包含通過提供的回撥函式返回true的所有元素。全部返回false則返回空陣列。
    語法

     arr.filter(callback (currentValue, index, array) { }, thisArg);
    複製程式碼

    引數

    callback 為陣列中的每一個元素執行的函式,該函式接受三個引數:

    1、currentValue( 當前值 ) 陣列中正在處理的當前元素
    2、idnex(索引)陣列中正在處理的當前值的索引
    3、array(陣列)當前正在處理的陣列

    thisArg可選
    可選引數,當執行回撥時用作this的值。

    返回值
    返回一個通過提供的回撥函式返回true的所有元素。全部返回false則返回空陣列。; 不會改變原陣列

  • map()

    建立一個新陣列,包含回撥函式每次執行的返回值。
    語法

     arr.map(callback (currentValue, index, array) { 
        // dosoming
        return value;
     }, thisArg);
    複製程式碼

    引數

    callback 為陣列中的每一個元素執行的函式,該函式接受三個引數:

    1、currentValue( 當前值 ) 陣列中正在處理的當前元素
    2、idnex(索引)陣列中正在處理的當前值的索引
    3、array(陣列)當前正在處理的陣列

    thisArg可選
    可選引數,當執行回撥時用作this的值。

    返回值
    返回一個通過提供的回撥函式返回的值。 不會改變原陣列

  • reduce()

    對累加器和陣列中的每一個元素應用一個函式,返回累加的值。
    語法

    arr.reduce(callback, initialValue)
    複製程式碼

    引數

    callback 執行陣列中每個值的函式,包含四個引數:

    accumulator : 累加器累加回撥的返回值;是上一次回撥返回的累加值或initialValue(如果設定了initialValue,第一次的值 就是initialValue)。
    currentValue: 正在處理的元素
    currentIndex > 可選:正在處理的當前元素的索引。如果提供了initailValue,則索引號為0,否則為1。
    array > 可選 : 陣列本身。

    initialValue >可選:用作第一個呼叫callback的引數的值。如果沒有提供,則將使用陣列中的第一個元素。

    返回值
    函式累計處理的結果。

相關文章