# [學習筆記] 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**

```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
```