Javascript JS中的高阶函数
我现在正在学习JavaScript。我有一些问题。以下代码摘自《雄辩的JavaScript》一书:Javascript JS中的高阶函数,javascript,higher-order-functions,Javascript,Higher Order Functions,我现在正在学习JavaScript。我有一些问题。以下代码摘自《雄辩的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 +=
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(数组、动作){
对于(var i=0;i
这段代码中发生了什么?调用forEach函数时,如何确定数字?它如何从数字数组中提取数字
这段代码中发生了什么
下面是对您的forEach
函数工作原理的描述:
forEach
函数接受两个参数,数组和函数,以迭代数组
操作(array[i])
,该操作调用传入函数并向其传递一个数组元素array[i]
从数组中获取下一项,并action(array[i])
调用传入函数并将其从数组中传递给下一项forEach(numbers, function(number) {
sum += number;
});
它将为numbers
数组中的每个数字调用您传递的函数一次,当它调用该函数时,它将数组中的一个数字作为第一个参数传递给您的函数
让一些人困惑的一件事是,您传递给forEach
的函数中的number
参数只是您为函数的第一个参数指定的名称。它可以被命名为任何您想要的名称,并且与forEach()
函数定义中使用的任何名称无关。函数参数的声明只是为每个参数指定的标签,这使您更容易使用它们。您也可以这样做:
forEach(numbers, function(whateverYouWant) {
sum += whateverYouWant;
});
调用forEach函数时,如何确定
号码
您的for
循环一次遍历整个数组中的一个数字,并为数组中的每个数字调用回调函数一次
它如何从数字数组中提取数字
array[i]
是从数组中提取数字的位置。这是从数组中检索第i个值的常规数组索引,其中i
从0
到数组长度减1不等
这段代码中发生了什么
下面是对您的forEach
函数工作原理的描述:
forEach
函数接受两个参数,数组和函数,以迭代数组
操作(array[i])
,该操作调用传入函数并向其传递一个数组元素array[i]
从数组中获取下一项,并action(array[i])
调用传入函数并将其从数组中传递给下一项forEach(numbers, function(number) {
sum += number;
});
它将为numbers
数组中的每个数字调用您传递的函数一次,当它调用该函数时,它将数组中的一个数字作为第一个参数传递给您的函数
让一些人困惑的一件事是,您传递给forEach
的函数中的number
参数只是您为函数的第一个参数指定的名称。它可以被命名为任何您想要的名称,并且与forEach()
函数定义中使用的任何名称无关。函数参数的声明只是为每个参数指定的标签,这使您更容易使用它们。您也可以这样做:
forEach(numbers, function(whateverYouWant) {
sum += whateverYouWant;
});
调用forEach函数时,如何确定
号码
您的for
循环一次遍历整个数组中的一个数字,并为数组中的每个数字调用回调函数一次
它如何从数字数组中提取数字
array[i]
是从数组中提取数字的位置。这是从数组中检索第i个值的常规数组索引,其中i
从0
到数组长度减1不等。就在这里:操作(数组[i])代码>-调用从数组传递元素的操作。它就在这里:操作(数组[i])代码>-调用从数组传递元素的操作。@K-Kropchatov-这是否回答了您的问题?如果是,请通过单击答案左侧的绿色复选标记向社区指出。如果没有,那么请解释你还需要什么帮助。@K-Kropchatov-这回答了你的问题吗?如果是,请通过单击答案左侧的绿色复选标记向社区指出。如果没有,请解释你还需要什么帮助。