什么传递给数组上的.map()迭代器函数?

时间:2017-03-24 00:02:09

标签: javascript arrays map-function

我有一个函数,它接受一个对象数组和一个表示属性的字符串。该函数应返回包含每个对象的该属性的数组。

以下是我的示例代码:

function pluck(array, property) {
    var newArr = [];
    array.map(function(paints){
       return newArr.push(paints[property]); 
    });
    return newArr;
}

这将返回一个新数组并且它可以工作。但是当函数将一个对象数组作为参数之一时......在map方法中传递给匿名迭代器函数的是什么?密钥的值?

如何使用map方法迭代对象数组?

1 个答案:

答案 0 :(得分:1)

您的问题的评论解释了代码中发生的事情。

当您在数组上调用map时,映射函数会提供3个参数,这些参数始终使用,有时很少按此顺序使用。

const result = items.map(function(element, index, items) {
    // do the mapping
});

依次为原始数组items的每个元素调用该函数,并将函数的结果放在result数组的相同索引位置。

函数参数是:

  • 元素 - 这是数组中的当前元素
  • index - 当前索引
  • items - 调用地图的原始数组

你的拔毛功能可以写成:

function pluck(arr, prop) {
    return arr.map(item => item[prop]);
}