---
# System prepended metadata

title: 關於 ES6 陣列方法 map

---

# 關於 ES6 陣列方法 map

### 方法說明
關於 array map() 方法，MDN 上的說明是這樣

>**map()** 方法會建立一個新的陣列，其內容為原陣列的每一個元素經由回呼函式運算後所回傳的結果之集合。

簡單來說，map 方法會做三件事
* 從原陣列取值出來
* 將值放到 map() 內的函式進行計算
* 將計算過後的結果儲存到新的陣列當中

map 方法會建立並回傳一個「新的」陣列，因此執行完這個方法後需要將結果賦予給變數儲存起來


### 範例

這段程式會將陣列 **num** 裡面的值都乘以2，並將結果儲存在 **new_num** 當中
```javascript=
let num = [1,2,3,4];

let new_num = num.map(function(item){
  return item*2;// 將 num 的值乘以 2 並 push 至 new_num 當中
});

console.log(num);
console.log(new_num);
```
結果如下：

```
[1, 2, 3, 4]
[2, 4, 6, 8]
```

如果想儲存在原本的變數 **num** 也可以

```javascript=
let num = [1,2,3,4];

num = num.map(function(item){
  return item*2;
});

console.log(num);
```

如果要儲存在原本的陣列當中，也可以用 **forEach** 達到相同效果

```javascript=
let num = [1,2,3,4];

num.forEach(function(item, index, num){
  num[index] = item*2;
});

console.log(num);
```


如果有任何疑問，歡迎留言跟我說



### 參考連結：
https://developer.mozilla.org/zh-TW/docs/Web/JavaScript/Reference/Global_Objects/Array/map