JavaScript Array map()

定義和用法

map() 方法使用為每個數組元素調用函數的結果創建新數組。

map() 方法按順序為數組中的每個元素調用一次提供的函數。

注釋:map() 對沒有值的數組元素不執行函數。

注釋:map() 不會改變原始數組。

實例

例子 1

返回原始數組中所有值的平方根的數組:

var numbers = [4, 9, 16, 25];
var x = numbers.map(Math.sqrt)
document.getElementById("demo").innerHTML = x;

親自試一試

例子 2

將數組中的所有值乘以 10:

var numbers = [65, 44, 12, 4];
var newarray = numbers.map(myFunction)
function myFunction(num) {
  return num * 10;
}
document.getElementById("demo").innerHTML = newarray;;

親自試一試

例子 3

獲取數組中每個人的全名:

var persons = [
  {firstname : "Malcom", lastname: "Reynolds"},
  {firstname : "Kaylee", lastname: "Frye"},
  {firstname : "Jayne", lastname: "Cobb"}
];
function getFullName(item) {
  var fullname = [item.firstname,item.lastname].join(" ");
  return fullname;
}
function myFunction() {
  document.getElementById("demo").innerHTML = persons.map(getFullName);
}

親自試一試

語法

array.map(function(currentValue, index, arr), thisValue)

參數值

參數 描述
function(currentValue, index, arr) 必需。為數組中的每個元素運行的函數。

函數參數:

參數 描述
currentValue 必需。當前元素的值。
index 可選。當前元素的數組索引。
arr 可選。當前元素所屬的數組對象
thisValue

可選。要傳遞給函數以用作其 "this" 值的值。

如果此參數為空,則值 "undefined" 將作為其 "this" 值傳遞。

技術細節

返回值: 數組,包含為原始數組中的每個元素調用提供的函數的結果。
JavaScript 版本: ECMAScript 5

瀏覽器支持

表格中的數字注明了完全支持該方法的首個瀏覽器版本。

所有瀏覽器都完全支持 map() 方法:

Chrome IE Edge Firefox Safari Opera
Chrome IE Edge Firefox Safari Opera
支持 9.0 支持 支持 支持 支持

相關頁面

教程:JavaScript 數組

教程:JavaScript 數組 Const

教程:JavaScript 數組方法

教程:JavaScript 排序數組

教程:JavaScript 數組迭代