2017-10-04 55 views
-1

我试图完成以下任务:我怎样才能停止从循环console.log每次迭代?

考虑一个大小为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只有最终结果?

+0

把'console.log'你的for循环..基本上最后'}' – Keith

+0

把'的console.log()'循环外之前之后? –

回答

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) 
} 
+0

如果您对我的回答满意,请将其标记为已接受。 – Alex

+0

非常感谢Alex,这真是太棒了! – HidFer

-1

我想出了自己。我需要一个其他的东西,如果在迭代完成时比较,只显示一个结果。

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) 
    } 
    } 
} 
+1

我认为Alex提供的答案更有意义 - 这会让代码变得复杂,并且使代码变得更长。 – damanptyltd

相关问题