Skip to content Skip to sidebar Skip to footer

How To Sort Multidimensional Array In Javascript

I have an array as follows var arry = [ [1, 'Convention Hall', 'Mumbai', 10, 'XYZ Company'], [2, 'Auditorium', 'Delhi', 10, 'ABC Company'], [3, 'CenterH

Solution 1:

http://jsfiddle.net/VPrAr/

enter image description here

You can use the arry.sort(). The default is alphanumeric and ascending.

So it would be:

var arry = [ [1, "Convention Hall", "Dangalore", 10, "XYZ Company"], 
             [2, "Auditorium", "Belhi", 10, "ABC Company"], 
             [3, "CenterHall", "Aumbai", 10, "ZZZ Company"],
            ];
var x =arry.sort(function(a,b){ return a[2] > b[2] ? 1 : -1; });
alert(x);

Solution 2:

Array.prototype.sort function expects a function as a parameter, which accepts two parameters and returns any of -1, 0 or 1.

I am a very big fan of functional programming, so I came up with this. This offers flexibility.

  1. You can sort based on any element
  2. You can even reverse the order of sorting
  3. You can customize, how the objects have to be compared.

functionbasicComparator(first, second) {
    if (first === second) {
        return0;
    } elseif (first < second) {
        return-1;
    } else {
        return1;
    }
}

functioncompareNthElements(n, comparatorFunction, reverse) {
    returnfunction(first, second) {
        if (reverse === true) {
            return comparatorFunction(second[n], first[n]);
        } else {
            return comparatorFunction(first[n], second[n]);
        }
    }
}

Thats it. Now, call the sort function like this

arry.sort(compareNthElements(1, basicComparator, true));  // Sorts first field and in reverse
arry.sort(compareNthElements(2, basicComparator));        // Sorts second field

Solution 3:

Use a sort function for example:

arry.sort(function(a,b){
   return a[2] > b[2] ? 1 : -1;
});

Solution 4:

try this

//WITH FIRST COLUMN
     arry = arry.sort(function(a,b) {
      return a[0] > b[0];
    });


//WITH SECOND COLUMN
arry = arry.sort(function(a,b) {
 return a[1] > b[1];
 });


//WITH THIRD COLUMN//and you want this code below
arry = arry.sort(function(a,b) {
 return a[2] > b[2];
 });

Post a Comment for "How To Sort Multidimensional Array In Javascript"