簡體   English   中英

javascript-如何對我的數組(數字)進行越來越多的排序

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM