Array.prototype.map() const newArr = arr.map(function (value, index, array){ //... }); 使用 map() 時他需要回傳一個值,他會透過函式內所回傳的值組合成一個陣列。 如果不回傳則是 undefined 回傳數量等於原始陣列的長度 簡單來說就是我們若用陣列使用 map() 方法呼叫函式的話,就可以讓陣列中每個元素執行完該函式後, 將每個元素的執行結果回傳到一個新的陣列。 範例 let A = [9000, 8500, 5500, 6500]; let B = A.map(function (value, index, array) { return value*2; }); console.log(A) // [9000, 8500, 5500, 6500] - 原陣列不會被修改 console.log(B) // [18000, 17000, 11000, 13000] 使用箭頭函示的縮寫就會變這樣 let A = [9000, 8500, 5500, 6500]; let B = A.map(item => item*2); console.log(B) // [18000, 17000, 11000, 13000] 【小補充】 map() 方法使用起來跟 forEach() 方法非常類似,最大的區別就是 forEach() 會修改原本的陣列, 而map() 方法可以回傳一個新的陣列,並保有原本的舊陣列,另外 forEach() 並不會回傳任何東西,所以寫在 return 裡的東西不會有作用哦! foreach() 範例 沒有 return : let A = [9000, 8500, 5500, 6500]; let B = A.foreach(function (value, index, array) { return value*2; // forEach 沒有在 return 的,所以不會有作用 }); console.log(B); // undefined 想要達到一樣的結果可以這樣寫: let A = [9000, 8500, 5500, 6500]; A.forEach(function (value, index, array) { array[index] = value*2; }); console.log(A); // [18000, 17000, 11000, 13000]