2017-10-04 49 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

相關問題