我有一个函数,它接受一个对象数组和一个表示属性的字符串。该函数应返回一个包含每个对象的该属性的数组。
这是我的示例代码:
function pluck(array, property) {
var newArr = [];
array.map(function(paints){
return newArr.push(paints[property]);
});
return newArr;
}
这会返回一个新数组并且它可以工作。但是,当函数接受对象数组作为参数之一时……什么会传递给 map 方法中的匿名迭代器函数?键的值?
它如何使用map方法迭代对象数组?
最佳答案
对您问题的评论解释了您的代码中发生的情况。
当您在数组上调用 map 时,映射函数会提供 3 个参数,这三个参数按始终、有时和很少的顺序使用。
const result = items.map(function(element, index, items) {
// do the mapping
});
依次对原始数组items
的每个元素调用该函数,并将函数的结果放置在result
数组的相同索引位置。
函数参数是:
- element - 这是数组中的当前元素
- index - 当前索引
- items - 调用 map 的原始数组
你的 pluck 函数可以写成:
function pluck(arr, prop) {
return arr.map(item => item[prop]);
}
关于javascript - 数组上的 .map() 迭代器函数传递了什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42989125/