【发布时间】:2018-02-19 16:47:24
【问题描述】:
我正在寻找一个范围的总和,但我不断得到“未定义”。我认为有些地方有问题,但我不确定是什么。
第 1 部分:“编写一个范围函数,该函数接受两个参数 start 和 end,并返回一个数组,其中包含从 start 到(包括)end 的所有数字:
第 2 部分:“接下来,编写一个 sum 函数,它接受一个数字数组并返回这些数字的总和。运行前面的程序,看看它是否确实返回 55。”
// Part 1
function deRange(start, end, step) {
if (step === null) {
step = 1;
var blank = [];
if (step > 0) {
for (var i = start; i <= end; i += step)
blank.push(i);
} else {
for (var i = start; i >= end; i += step)
blank.push(i);
}
}
return blank;
}
// Part 2
function theSum(blank) {
var total = 0;
for (var i = 0; i < blank.length; i++)
total += blank[i];
return total;
}
console.log(deRange(1, 10));
console.log(deRange(5, 2, -1));
console.log(theSum(deRange(1, 10)));
【问题讨论】:
-
可能是因为第二个
for循环之后的}括号吗? -
您在
deRange中缺少第三个参数。即使它为空,你也应该显式调用它(deRange(1, 2, null))
标签: javascript arrays function for-loop range