爲了好玩,我開始一些JavaScript上CheckiO。隨着中位任務,我有一個問題。首先,我嘗試使用for
循環對給定數組進行排序。要在循環中查看數組,我使用了console.log
。排序與循環數組失敗
for (var i = 0; i < data.length-1; i++) {
if (data[i] > data[i+1]) {
var temp = data[i];
data[i] = data[i+1];
data[i+1] = temp;
i = 0;
}
console.log(data);
}
問題是隻有一個數字在錯誤的位置;排序停止,只是打印陣列幾次。 例如:
median([5,4,3,2,1])
[ 4, 5, 3, 2, 1 ]
[ 4, 3, 5, 2, 1 ]
[ 4, 3, 5, 2, 1 ]
[ 4, 3, 2, 5, 1 ]
[ 4, 2, 3, 5, 1 ]
[ 4, 2, 3, 5, 1 ]
[ 4, 2, 3, 5, 1 ]
[ 4, 2, 3, 1, 5 ]
[ 4, 2, 3, 1, 5 ]
[ 4, 2, 1, 3, 5 ]
[ 4, 1, 2, 3, 5 ]
[ 4, 1, 2, 3, 5 ]
[ 4, 1, 2, 3, 5 ]
[ 4, 1, 2, 3, 5 ]
對此行爲有任何解釋嗎?謝謝!
你應該看看的https://developer.mozilla。組織/ EN-US /文檔/網絡/的JavaScript /參考/ Global_Objects /陣列/排序。 – ericwenn
這種排序是否需要手動滾動,或者您可以使用'data.sort();'並完成它嗎? – James
我修改了一下我的答案,以確保您理解並可以看到您的代碼和我的代碼有何不同。我認爲你這種分類循環的想法很簡單,很好,但它需要一些調試幫助才能達到終點。我希望我的回答不僅提供瞭解決方案,還提供了一種方式讓您自己瞭解如何在控制檯中看到自己的錯誤,並在調試中變得更好。 –