循环重复相同的值

时间:2017-12-14 22:09:40

标签: javascript

我正在尝试创建一个函数,其中有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);

4 个答案:

答案 0 :(得分:1)

您应该返回result数组并从console.log循环中移除for

使用varlet声明变量是一种很好的做法。

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语句。

&#13;
&#13;
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;
&#13;
&#13;

正如其他许多人所提到的,另外一个建议是将varlet关键字放在for循环中i变量的前面,这样你就不会# 39; t意外地设置或覆盖全局范围内的某些内容。

答案 3 :(得分:0)

这是您的代码,细分:

您正在使用三个参数startstepstop定义一个函数(如您所述)。

然后创建一个空数组rando

对于从istart的每个号码stop(按step计算),您将i追加到rando并打印{ {1}}。

这会导致您的阵列被多次打印出来,每次都有一个新的数字。

要解决此问题,您有两种选择,具体取决于您的需求。

  1. 在循环后打印列表。
  2. 在循环内打印rando
  3. 第一个结果将在添加所有数字时打印出数组,第二个结果将按顺序打印出每个数字。