This question already has answers here:
Closed 4 months ago.
I need to sort an array in javascript..
anyone how to do that??
by default the sort method doesn't work with numbers...
I mean:
a = [1, 23, 100, 3]
a.sort()
a values are:
[1, 100, 23, 3]
thanks :)
Usually works for me:
a.sort(function(a,b){
return a - b;
});
So if you write the sorting function, it will work.
[1, 23, 100, 3].sort(function(a, b){
if (a > b)
return 1;
if (a < b)
return -1;
return 0
});
<script type="text/javascript">
function sortNumber(a,b)
{
return a - b;
}
var n = ["10", "5", "40", "25", "100", "1"];
document.write(n.sort(sortNumber));
</script>
You can pass in a comparator function to sort
.
> a.sort(function(a, b) { return a < b ? -1 : a > b ? 1 : 0; });
[1, 3, 23, 100]
Use a custom sort function.
a = [1, 23, 100, 3];
a.sort(function(a,b){ return a-b; });
Here is a solution to sort a Javascript array in ascending order
function bubblesort(array){
var done = false;
while(!done){
done = true;
for(var i = 1; i< array.length; i++){
if(array[i -1] > array[i]){
done = false;
var tmp = array[i-1];
array[i-1] = array[i];
array[i] = tmp;
}
}
}
return array;
}
var numbers = [2, 11, 1, 20, 5, 35];
bubblesort(numbers);