Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
雄辩的Javascript:Can';我不明白在求和函数中是如何确定数值的_Javascript - Fatal编程技术网

雄辩的Javascript:Can';我不明白在求和函数中是如何确定数值的

雄辩的Javascript:Can';我不明白在求和函数中是如何确定数值的,javascript,Javascript,我试图理解如何根据《雄辩的Javascript》一书中的示例确定number变量 当我输出number时,我可以看到它随着循环的进行而增长,但我看不到number变量的实际设置位置 (注意:对于任何理解雄辩Javascript的人,我已将show()函数改为alert()) 函数forEach(数组、动作){ 对于(var i=0;i

我试图理解如何根据《雄辩的Javascript》一书中的示例确定number变量

当我输出number时,我可以看到它随着循环的进行而增长,但我看不到number变量的实际设置位置

(注意:对于任何理解雄辩Javascript的人,我已将show()函数改为alert())

函数forEach(数组、动作){
对于(var i=0;i
它设置在代码的一半以下:

forEach(数字,函数(数字){

或者,当调用该匿名函数时:

动作(数组[i]);


(由于函数已作为
操作
参数传递给
forEach
函数。

它设置为代码的一半:

forEach(numbers, function (number) {
    total += number;
  });
forEach(数字,函数(数字){

或者,当调用该匿名函数时:

动作(数组[i]);

(因为函数已作为
操作
参数传递给
forEach
函数

forEach(numbers, function (number) {
    total += number;
  });
在本部分中,编号取自当前编号,相当于:

for (var i = 0; i < numbers.length; i++) {
  var number = numbers[i];

  function (number) {
    total += number;
  }
}
for(变量i=0;i
在本部分中,编号取自当前编号,相当于:

for (var i = 0; i < numbers.length; i++) {
  var number = numbers[i];

  function (number) {
    total += number;
  }
}
for(变量i=0;i
一旦您了解了更多的
forEach
方法签名,这一点就显而易见了

从你的代码

function sum(numbers) 
{   var total = 0;     
    forEach(numbers, function (number) {       
        total += number;     
    });     
return total;   
}   

alert(sum([1, 10, 100, 1000]));   
然后您需要知道,
ForEach
方法采用两个参数:

  • 第一个是要迭代的数组
  • 第二个是针对当前数组项引发的委托…该函数将为数组的每个项调用
  • 这意味着将为提供的数组
    [1,10,100,1000]
    的每个项调用具有一个名为number(
    function(number){…}
    )的参数的声明函数,并将number设置为这些值中的每个值


    希望这对您有所帮助

    一旦您了解了更多的
    forEach
    方法签名,这一点就显而易见了

    从你的代码

    function sum(numbers) 
    {   var total = 0;     
        forEach(numbers, function (number) {       
            total += number;     
        });     
    return total;   
    }   
    
    alert(sum([1, 10, 100, 1000]));   
    
    然后您需要知道,
    ForEach
    方法采用两个参数:

  • 第一个是要迭代的数组
  • 第二个是针对当前数组项引发的委托…该函数将为数组的每个项调用
  • 这意味着将为提供的数组
    [1,10,100,1000]
    的每个项调用具有一个名为number(
    function(number){…}
    )的参数的声明函数,并将number设置为这些值中的每个值


    希望这能有所帮助

    我知道我在这里听起来可能很傻,但我真的看不到其中的联系。我知道我在这里听起来可能很傻,但我真的看不到其中的联系。非常感谢你的帮助,但是,老实说,我已经花了30多分钟试图理解你的答案-我对javascript还是很陌生(这就是我开始使用雄辩的Javascript的原因),请原谅我的无知。但我仍然不知道如何首先为
    number
    赋值,然后随着循环的进行而递增。非常感谢您的帮助,不过,我已经花了30多分钟试图理解您的答案-我对javascript非常陌生(这就是我开始使用雄辩的Javascript的原因),所以请原谅我的无知。但我仍然不明白的是,
    number
    如何首先被赋值,然后随着循环的进行而递增。这对我来说仍然是一个非常棘手的问题。但似乎你帮了我最多的忙。这对我来说仍然是一个非常棘手的问题。但似乎你帮了我很多最能理解这一点。