什么被传递给数组上的 .map() 迭代器函数?
What gets passed to the .map() iterator function on an array?
我有一个函数,它接受一个对象数组和一个字符串,它代表一个 属性。该函数应该 return 一个包含每个对象的 属性 的数组。
这是我的示例代码:
function pluck(array, property) {
var newArr = [];
array.map(function(paints){
return newArr.push(paints[property]);
});
return newArr;
}
这 return 是一个新数组,它可以工作。但是当函数接受一个对象数组作为参数之一时……在 map 方法中传递给匿名迭代器函数的是什么?密钥的值?
如何使用 map 方法遍历对象数组?
对您问题的评论解释了您的代码中发生的事情。
当您在数组上调用 map 时,映射函数提供了 3 个参数,它们按总是、有时和很少的顺序使用。
const result = items.map(function(element, index, items) {
// do the mapping
});
对原数组items
的每个元素依次调用函数,函数的结果放在result
数组的相同索引位置。
函数参数是:
- element - 这是数组中的当前元素
- index - 当前索引
- items - 调用地图的原始数组
你的 pluck 函数可以写成:
function pluck(arr, prop) {
return arr.map(item => item[prop]);
}
我有一个函数,它接受一个对象数组和一个字符串,它代表一个 属性。该函数应该 return 一个包含每个对象的 属性 的数组。
这是我的示例代码:
function pluck(array, property) {
var newArr = [];
array.map(function(paints){
return newArr.push(paints[property]);
});
return newArr;
}
这 return 是一个新数组,它可以工作。但是当函数接受一个对象数组作为参数之一时……在 map 方法中传递给匿名迭代器函数的是什么?密钥的值?
如何使用 map 方法遍历对象数组?
对您问题的评论解释了您的代码中发生的事情。
当您在数组上调用 map 时,映射函数提供了 3 个参数,它们按总是、有时和很少的顺序使用。
const result = items.map(function(element, index, items) {
// do the mapping
});
对原数组items
的每个元素依次调用函数,函数的结果放在result
数组的相同索引位置。
函数参数是:
- element - 这是数组中的当前元素
- index - 当前索引
- items - 调用地图的原始数组
你的 pluck 函数可以写成:
function pluck(arr, prop) {
return arr.map(item => item[prop]);
}