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:
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.
- You can sort based on any element
- You can even reverse the order of sorting
- 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"