如何在每次迭代时从console.log中停止for循环?

时间:2017-10-04 23:09:25

标签: javascript arrays for-loop

我正在努力完成以下任务:

考虑大小为N的整数数组。您应该找到并打印值为X的所有元素的位置。您可以选择变量和值。

以下是我的变数:

var numLocation = [];
var givenNum = 8;
var arr = [0,8,1,2,4,5,7,8,9,0,8]

这是我的功能

function indexPosition(arr) {
  for(var i = 0; i <= arr.length; i++) {
  if (arr[i] === givenNum) {
    numLocation.push(i)
    } else {
      console.log (numLocation)
    }
  }
 }

调用函数后,这是我的结果:

[]
[1]
[1]
[1]
[1]
[1]
[1,7]
[1,7]
[1,7,10]

我如何只显示最后一次迭代,它显示数字8所在的三个位置?意思是,我怎样才能在console.log中找到最终结果?

2 个答案:

答案 0 :(得分:1)

在for循环之外调用log语句。像这样:

function indexPosition(arr, givenNum) {
  var numLocation = []

  for (var i = 0; i <= arr.length; i++) {
    if (arr[i] === givenNum) {
      numLocation.push(i)
    }
  }

  console.log(numLocation)
}

答案 1 :(得分:-1)

我自己想通了。我需要一个if,如果比较迭代完成时只显示一个结果。

function indexPosition(arr) {
   for(var i = 0; i <= arr.length; i++) {
   if (arr[i] === givenNum) {
      numLocation.push(i)
   } else if (i === arr.length) { 
     console.log (numLocation)
    }   
   }
 }