JavaScript Array map() 方法

  • JavaScript Array map() 方法

    map()方法创建一个新数组,其结果是为每个数组元素调用一个函数。map()方法按顺序为数组中的每个元素调用一次提供的函数。
    注意: map()不会为没有值的数组元素执行函数。
    注意: map()不会更改原始数组。
    实例:
    返回一个数组,其中包含原始数组中所有值的平方根:
    var numbers = [4, 9, 16, 25];
    
    function myFunction() {
      x = document.getElementById("demo")
      x.innerHTML = numbers.map(Math.sqrt);
    }
    尝试一下
  • 浏览器支持

    IE/Edge Chrome FireFox Safari Opera
    方法
    map()
    9.0+
    支持
    1.5+
    支持
    支持
  • 语法

    array.map(function(currentValue, index, arr), thisValue)
  • 参数值

    参数 描述
    function(currentValue, index, arr) 必需的。 要为数组中的每个元素运行的函数。 函数参数:
    • currentValue - 必需的。 当前元素的值
    • index - 可选的。 当前元素的数组索引
    • arr - 可选的。 当前元素所属的数组对象
    thisValue 可选的。 要传递给要用作“this”值的函数的值。如果此参数为空,则值“undefined”将作为其“this”值传递
  • 技术细节

    项目 描述
    返回值: 一个数组,包含为原始数组中的每个元素调用提供的函数的结果。
    JavaScript版本: ECMAScript 5
  • 更多例子

    将数组中的所有值乘以特定数字:
    var numbers = [65, 44, 12, 4];
    
    function multiplyArrayElement(num) {
      return num * document.getElementById("multiplyWith").value;
    }
    
    function myFunction() {
      document.getElementById("demo").innerHTML = numbers.map(multiplyArrayElement);
    }
    尝试一下
    获取阵列中每个人的fullname:
    var persons = [
      {firstname : "Malcom", lastname: "Reynolds"},
      {firstname : "Kaylee", lastname: "Frye"},
      {firstname : "Jayne", lastname: "Cobb"}
    ];
    
    
    function getFullName(item, index) {
      var fullname = [item.firstname,item.lastname].join(" ");
      return fullname;
    }
    
    function myFunction() {
      document.getElementById("demo").innerHTML = persons.map(getFullName);
    }
    尝试一下