gpt4 book ai didi

javascript - 返回值未传递给其他函数

转载 作者:行者123 更新时间:2023-11-29 21:49:53 24 4
gpt4 key购买 nike

我正在尝试通过做一些练习来复习我的 JavaScript。

我写了一个 range 函数,它接受两个参数,开始和结束,并返回一个包含从开始到(包括)结束的所有数字的数组。

然后我编写了一个 sum 函数,它接受一个数字数组并返回这些数字的总和。

问题是当我从 range 返回一个值并传递给第 27 行的 sum 时(或 console.log(sum(range(1 , 10)));).但是我得到零作为返回值。我通过传递数组 test 检查我的 sum 函数,它按预期工作。我忽略了什么?

function range(start, end, step){
if(step === undefined){ step = 1; }

var arr = [];

for(var i = start; i >= end; i += step){
arr.push(i);
}

return arr;
}

function sum(nums){
var total = 0;

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

return total;
}
var test = [1, 3, 5];
console.log(sum(test));
// → returns 9


console.log(range(5, 2, -1));
// → returns [5, 4, 3, 2]

console.log(sum(range(1, 10)));
// → should return 55, but returns 0

最佳答案

您的 range 函数在其 for 循环条件中存在问题。这是我要处理的也处理下降范围的工作:

function range(start, end, step){
if(step === undefined){ step = 1; }

var c = (Math.max(start, end) - Math.min(end, start)) / Math.abs(step);
var arr = [];

for(var i = start; c-- >= 0; i += step){
arr.push(i);
}

return arr;
}

它为要采取的步数添加一个计数器 c,递减它直到它小于 0 并且不用担心 iend.

这是一个 fiddle :http://jsfiddle.net/syssqob4/2/

关于javascript - 返回值未传递给其他函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29830520/

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