0

I am trying to sort an array with several sets or pairs; I wish to sort them based on the first number of each pair.

My code goes as it follows:

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 debug looks like:

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

I wish to sort the first part of the array so it would look like:

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 Answers1

1

Your a and b in sort is array

Try like this

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

JSFIDDLE

Anik Islam Abhi
  • 25,137
  • 8
  • 58
  • 80