所以我试图理解特定的函数式编程和高阶函数。我从未清楚理解的是,回调函数的参数如何连接到例如数组?
为了更清楚,我们来看看这个代码示例:
Hashtable
回调参数var friends = ["Mike", "Stacy", "Andy", "Rick"];
friends.forEach(function (eachName, index){
console.log(index + 1 + ". " + eachName); // 1. Mike, 2. Stacy, 3. Andy, 4. Rick
});
如何知道它意味着从数组返回项目而eachName
应该返回数组的索引?数组和回调参数之间的连接如何工作?
答案 0 :(得分:2)
forEach
方法正在调用或调用您的回调函数。更具体地说,让我们看看forEach是如何工作的。
function forEach(arr, func) {
for (var i = 0; i < arr.length; i++) {
func(arr[i], i);
}
}
现在你可以做这样的事了。
function forEach(arr, func) {
for (var i = 0; i < arr.length; i++) {
func(arr[i], i);
}
}
var cars = ["BMW", "Tata Nano", "Lamborghini"];
forEach(cars, function (car, index) {
alert(car + " " + index);
});
&#13;
答案 1 :(得分:0)
API为您完成。在这种情况下,array.forEach
的回调始终设置为接受3个参数:当前项,数组中当前项的索引以及数组本身。
具有不同参数签名的API的一个示例是array.reduce
。它被设置为接受4个参数:累加器,当前项,当前项的索引和数组本身。