2014-11-14 101 views
0

所以我知道有一個.sort()方法可以用來在JavaScript中對數組進行排序,但我正在嘗試自己構建方法以供練習。我正在努力爲一組數字做它。目前,我已經在一個數組中使用了5個數字,但我想讓它變成動態的,以便它可以創建一個大小不一的數組。有沒有一種方法可以輕鬆地複製這些代碼,以便擴展或需要採用完全不同的方法?JavaScript構建多個臨時變量

var myArray = [3,2,4,5,1]; 

function sort(array) { 
    var max = 0; 
    var mid3 = 0; 
    var mid2 = 0; 
    var mid1 = 0; 
    var min = 0; 
    var sortArr = []; 
    for (var i = 0; i < array.length; i++) { 
    if (array[i] > max) { 
     min = mid1 
     mid1 = mid2 
     mid2 = mid3 
     mid3 = max 
     max = array[i]; 
    } else if (array[i] > mid3) { 
     min = mid1 
     mid1 = mid2 
     mid2 = mid3 
     mid3 = array[i]; 
    } else if (array[i] > mid2) { 
     min = mid1 
     mid1 = mid2 
     mid2 = array[i]; 
    } else if (array[i] > mid1) { 
     min = mid1 
     mid1 = array[i]; 
    } else { 
     min = array[i] 
    } 
    } 
    sortArr.push(max, mid3, mid2, mid1, min); 
    return sortArr 
} 

console.log(sort(myArray)) 

我想建立某種變量構造的,將是這樣的下面,然後通過在該功能使一些邏輯是抽象的,但不知道這是可能的。然後,您需要一些方法來構建if else語句和要更新的推送方法。我不知道是否有一些簡單的解決方案,我錯過了任何幫助。

function varConstruct (num) { 
    for (var i = 0; i < num; i++) { 
    "mid" + i; 
    } 
    } 
+0

myArray [「mid」+ i] ??? – Vinz243 2014-11-14 21:09:07

+4

你讓太多比較。查看快速排序或合併排序 - 請參閱http://www.sorting-algorithms.com/ – 2014-11-14 21:13:23

+0

如果您想要乾淨地完成此操作,可能需要查看遞歸。 – 2014-11-14 21:26:08

回答