我正在学习JavaScript。我有一些问题。以下代码来自Eloquent JavaScript:
function forEach(array, action) {
for (var i = 0; i < array.length; i++)
action(array[i]);
}
var numbers = [1, 2, 3, 4, 5],
sum = 0;
forEach(numbers, function(number) {
sum += number;
});
console.log(sum);
此代码中发生了什么?当调用forEach函数时,它如何确定数字是多少?它是如何从数字数组中提取数字的?
答案 0 :(得分:5)
此代码中发生了什么?
以下是您的forEach
功能如何运作的说明:
forEach
函数接受两个参数,即数组和函数for
循环来遍历数组action(array[i])
调用传入函数并将其传递给一个数组元素。 array[i]
从数组中获取下一个项目,action(array[i])
调用传入的函数并将其传递给数组中的下一项。然后,当你这样称呼时:
forEach(numbers, function(number) {
sum += number;
});
它会调用你为{{1}}数组中的每个数字传递一次的函数,当它调用该函数时,它会从数组中传递一个数字作为函数的第一个参数。
让一些人感到困惑的一件事是你传递给numbers
的函数中的number
参数只是你赋给函数第一个参数的名字。它可以命名为您想要的任何名称,与forEach
函数定义中使用的任何名称无关。函数参数的声明只是分配给每个参数的标签,使您更容易使用它们。你也可以这样做:
forEach()
forEach函数在被调用时如何确定它是什么 号码?
您的forEach(numbers, function(whateverYouWant) {
sum += whateverYouWant;
});
循环一次遍历整个数组一个数字,并为数组中的每个数字调用一次回调函数。
如何从数字数组中提取数字?
for
是从数组中提取数字的位置。这是正常的数组索引,用于从array[i]
从i
变化到数组长度减去1的数组中检索第i个值。