我正在尝试创建一个函数,其中有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);
发布于 2017-12-14 22:12:21
只需将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);
正如许多其他人所提到的,对您来说,另一个建议是在for循环中将var或let关键字放在i变量的前面,这样就不会意外地在全局范围内设置或覆盖某些内容。
发布于 2017-12-14 22:14:03
您应该返回result数组并从for循环中删除console.log。
使用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));
发布于 2017-12-14 22:12:02
在循环的每一次迭代中都要打印数组。让循环结束,然后调用console.log
https://stackoverflow.com/questions/47822837
复制相似问题