[英]javascript- how can i sort my array (numbers) increasingly
<script>
function ordine(){
var numeri=new Array();
for(i=0; i<=5;i++){
numeri[i]=prompt("inserisci un numero");
}
for(x=0; x<=5; x++){
for(j=0; j<=5; j++){
if(numeri[j]>numeri[j++]){
tmp=numeri[j];
numeri[j]=numeri[j++];
numeri[j++]=tmp;
}
}
}
document.write(numeri);
}
</script>
我寫了這段代碼來對數組進行遞增排序,但它不起作用。 有人可以解釋我為什么嗎?
使用 sort() 函數:
document.write(numeri.sort());
以隨機順序輸入,您將獲得輸出:
1,2,3,4,5,7
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort
問題出在if
語句中
if(numeri[j]>numeri[j++]){
tmp=numeri[j];
numeri[j]=numeri[j++];
numeri[j++]=tmp;
}
j++
意味着在下一行中j
的值將是j+1
。 因此,每次訪問numeri[j++]
您實際上都在訪問不同的值。
if(numeri[i]>numeri[j]){
tmp=numeri[i];
numeri[i]=numeri[j];
numeri[j]=tmp;
}
應該工作得很好
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.