繁体   English   中英

为什么我的 function 在自己调用时工作,但当我与另一个 function 一起调用时却不行? (初学者javascript问题)

[英]Why is my function working when called by itself but not when I call it with another function? (Beginner javascript question)

我正在应对一些编码挑战(我仍然是初学者)。 我能够使这两个函数都工作,但是当我尝试将它们一起调用时,我的第二个 function 只返回零。

这两个函数都接受两个(或更多)参数。 第一个 function 计算两个参数之间的数字并在字符串 (1, 5) => [1,2,3,4,5] 中返回它们,第二个将它们加在一起 (1,10) => 55。为什么这些单独工作而不是一起工作?

提前致谢!

`let range = (start, end) => {
    numbers = [];
    for(i = start; i<end+1; i++) {
      if(i>=start){
      numbers.push(i);
        if (i>=end) {
          console.log(numbers);
        }
      }
    }

}

function sum(start, ...add){ 
    let sumCounter = 0; 
      for(i = start; i<=add; i++) {
        sumCounter += i;
    }
    return sumCounter;
} 

console.log(sum(1,10)); //second function works

console.log(sum(range(1, 10))); //first function works, not second function `

这里发生了很多事情。 首先确保您在第一个 function 中返回一个值,而不仅仅是打印到控制台。 其次,当你说“if(i>=end)”时,它总是正确的,所以不需要它。 也可以不用说“if(I>=end)”,而是把“I==end”或者只是把下面的代码放在for循环之后。 我建议您返回这些数字,并将其作为总和 function 的参数。 我希望你能够遵循所有这些!

这是一个工作选项:

function range(start, end) {
    var numbers = [];
    for (i=start;i<end+1;i++) {
        numbers.push(i)
    } 
    return numbers;
}

console.log("Sum: " + range(5, 10).reduce((a,b) => a + b, 0));

或者这可能更容易理解:

function range(start, end) {
    var numbers = [];
    for (i=start;i<end+1;i++) {
      numbers.push(i)
    } 
    return numbers;
}

function sum(nums) {
    var sum = 0;
    for (i=0;i<nums.length;i++) {
        sum += nums[i];
    }
    return sum;
}

console.log("Sum: " + sum(range(5, 10)));

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM