我正在尝试创建一个函数,其中有3个参数:start,step和stop。这些将设置循环的开始,上升的时间和停止的时间。
我设法让它显示但循环重复相同的数字,直到它完成任务。
我需要在数组中显示结果,例如,如果我的起始位置为0,上升2并且停在10,我将返回[0,2,4,6,8,10]
function range(start, step, stop) {
var rando = [];
for (i = start; i <=stop; i = i + step) {
rando.push(i);
console.log(rando);
}
}
range(0, 2, 10);
答案 0 :(得分:1)
您应该返回result
数组并从console.log
循环中移除for
。
使用var
或let
声明变量是一种很好的做法。
var rando = [];
for (var i = start; i <= stop; i = i + step) {
rando.push(i);
}
return rando;
这样的事情:
function range(start, step, stop) {
var rando = [];
for (var i = start; i <= stop; i = i + step) {
rando.push(i);
}
return rando;
}
console.log(range(0, 2, 10));
答案 1 :(得分:0)
你在循环的每次迭代中打印你的数组。让循环结束,然后调用console.log
答案 2 :(得分:0)
只需将您的console.log语句移到for循环之外:
当你在循环中有log语句时,它会在每次迭代时注销数组的内容。由于您只想打印完整数组一次,因此在for循环结束后放入console.log语句。
function range(start, step, stop) {
var rando = [];
for (var i = start; i <=stop; i = i + step) {
rando.push(i);
}
console.log(rando);
}
range(0, 2, 10);
&#13;
正如其他许多人所提到的,另外一个建议是将var
或let
关键字放在for循环中i
变量的前面,这样你就不会# 39; t意外地设置或覆盖全局范围内的某些内容。
答案 3 :(得分:0)
这是您的代码,细分:
您正在使用三个参数start
,step
和stop
定义一个函数(如您所述)。
然后创建一个空数组rando
。
对于从i
到start
的每个号码stop
(按step
计算),您将i
追加到rando
并打印{ {1}}。
这会导致您的阵列被多次打印出来,每次都有一个新的数字。
要解决此问题,您有两种选择,具体取决于您的需求。
rando
。第一个结果将在添加所有数字时打印出数组,第二个结果将按顺序打印出每个数字。