gpt4 book ai didi

javascript - JS 中的高阶函数

转载 作者:行者123 更新时间:2023-11-30 08:32:31 24 4
gpt4 key购买 nike

我现在正在学习 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 函数在调用时如何确定数字是多少?它如何从数字数组中提取数字?

最佳答案

What is happening in this code?

下面是对 forEach 函数工作原理的描述:

  1. 您的 forEach 函数接受两个参数,数组和函数
  2. 它设置了一个for循环来遍历数组
  3. 然后,它为数组中的每个元素调用 action(array[i]),后者调用传入的函数并将一个数组元素传递给它。 array[i] 从数组中获取下一项,然后 action(array[i]) 调用传入的函数并将数组中的下一项传递给它。<

然后,当你这样调用它时:

forEach(numbers, function(number) {
sum += number;
});

它会为 numbers 数组中的每个数字调用一次您传递给它的函数,当它调用该函数时,它会将数组中的一个数字作为第一个参数传递给您的函数。

让一些人感到困惑的一件事是,您传递给 forEach 的函数中的 number 参数只是您分配给函数第一个参数的名称。它可以任意命名,与 forEach() 函数定义中使用的任何名称无关。函数参数的声明只是分配给每个参数的标签,使您更容易使用它们。你也可以这样做:

forEach(numbers, function(whateverYouWant) {
sum += whateverYouWant;
});

How does the forEach function, when called, determine what is the number?

您的 for 循环一次遍历整个数组一个数字,并为数组中的每个数字调用一次回调函数。

How does it extract number from the numbers array?

array[i] 是从数组中提取数字的地方。这是正常的数组索引,用于从数组中检索第 i 个值,其中 i0 到数组长度减 1。

关于javascript - JS 中的高阶函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35672627/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com