# [學習筆記] Javascript 的 Array.forEach、Array.map、Array.filter、Array.reduce 的差別? 這些都是在 JavaScript 中,用於處理陣列的方法,以下為範例: <br> ### :small_blue_diamond:Array.forEach 此方法用於此方法用於對陣列中的每個元素執行一次指定的函示,但他**不會返回任何新的陣列**。 他主要用於遍歷陣列,並對每個元素執行操作,例如「更新元素」或將其「輸出到控制台」。 * ***如果你只是需要對陣列中的元素進行操作,而不需要返回新的陣列,可以使用 Array.forEach*** ```javascript! const numbers = [1, 2, 3, 4]; numbers.forEach((num)=>{ console.log(num) }) // => 1 // => 2 // => 3 // => 4 ``` ### :small_blue_diamond:Array.map 此方法用於對陣列中的每個元素應用指定的函示,並**返回一個新的陣列**,該陣列由函式返回的值組成。 他通常用於「將一個陣列轉換為另一個陣列」,保留相同數量的元素,進行轉換或處理。 * **如果你想將一個陣列轉換為另一個陣列,每個元素都經過一定的轉換或操作,可以使用 Array.map** ```javascript! const numbers = [1, 2, 3, 4]; const doubledNumbers = numbers.map((num) => { return num * 2; }); console.log(doubledNumbers); // => [2, 4, 6, 8] ``` ### :small_blue_diamond:Array.filter 此方法用於**根據指定的條件篩選陣列中的元素**,**並返回一個新的陣列**,該陣列僅包含符合條件的元素。 他用於從陣列中過濾出特定的值或符合特定條件的元素。 * **根據特定條件過濾出陣列中的元素,並獲得一個只包含符合條件元素的新陣列,可以使用 Array.filter** ```javascript! const numbers = [1, 2, 3, 4]; const evenNumbers = numbers.filter((num) => { return num % 2 === 0; }); console.log(evenNumbers); // => [2, 4] ``` ### :small_blue_diamond:Array.reduce 此方法用於將陣列中的所有元素進行累加計算,並返回最終的結果。 * **如果你想對陣列中的元素進行累加計算,並返回最終的結果,可以使用 Array.reduce** ![](https://hackmd.io/_uploads/Hyqr-dlw3.png) ```javascript! const numbers = [1, 2, 3, 4]; const multipliedSum = numbers.reduce((accumulator, currentValue) => { return accumulator * currentValue; }, 2); console.log(multipliedSum); // => 48 // (1*2*3*4) * 2 = 48 ```