2015-11-08 71 views
0

我想排序數組或對;我希望根據每一對的第一個數字對它們進行排序。排序數組[i] [0],[i] [1]基於[i]

我的代碼去,因爲它遵循:

function randomMap(numOfHills){ 
    for(var i=0; i<numOfHills; i++){ 
     xRandomForHills = Math.floor((Math.random() * 2000)); 
     if(xRandomForHills >= 1700){ 
      xRandomForHills = xRandomForHills - 300; 
     } 
     if(xRandomForHills <= 300){ 
      xRandomForHills = xRandomForHills + 300; 
     } 
     yRandomForHills = Math.floor((Math.random() * 300)); 
     if(yRandomForHills <= 100){ 
      yRandomForHills = yRandomForHills + 300; 
     } 
     hillArray.push([xRandomForHills,yRandomForHills]); 

console.log("my Hill = " + hillArray[i]); 
    } 
    sortArray(numOfHills); 
}; 

function sortArray(numOfHills){ 
    hillArray.sort(function(a, b){return b-a}); 
    hillArray; 
    for(var i=0; i<numOfHills; i++){ 
    console.log("Sorted = " + hillArray[i]); 
    } 
    drawMap(); 
}; 

我調試的樣子:

my Hill = 917,136 
my Hill = 885,274 
my Hill = 876,347 
my Hill = 1011,184 
my Hill = 563,273 

Sorted = 917,136 
Sorted = 885,274 
Sorted = 876,347 
Sorted = 1011,184 
Sorted = 563,273 

我希望到陣列的第一部分進行排序,以便它看起來像這樣:

my Hill = 917,136 
my Hill = 885,274 
my Hill = 876,347 
my Hill = 1011,184 
my Hill = 563,273 

Sorted = 563,273 
Sorted = 876,347 
Sorted = 885,274 
Sorted = 917,136 
Sorted = 1011,184 

回答

1

您的在排序ab是陣列

嘗試這樣

hillArray.sort(function(a, b){return a[0]-b[0]; }); 

JSFIDDLE

+0

它的工作!我如何以降序排列?提前致謝! –

+1

只是將這個'a [0] -b [0]'轉換爲'b [0] -a [0]' –

+0

是的,這是有道理的!再次感謝 !! –

相關問題