Forum Moderators: open
I have an array:
var myArray = [];
myArray[0].stuff = 23;
myArray[1].stuff = 45;
myArray[2].stuff = 41;
myArray[3].stuff = 29;
myArray[4].stuff = 36;
I would like to organise the array so it looks like:
myArray[0].stuff = 23;
myArray[3].stuff = 29;
myArray[4].stuff = 36;
myArray[2].stuff = 41;
myArray[1].stuff = 45;
I can then loop through it. Joy.
How so I do this?
Thank you.
Method 1: do a google search for "javascript quicksort".
Method 2:
//given an array of objects
var myArray = new Array();
myArray[0] = new Object();
myArray[0].stuff = 23;
myArray[1] = new Object();
myArray[1].stuff = 45;
myArray[2] = new Object();
myArray[2].stuff = 41;
myArray[3] = new Object();
myArray[3].stuff = 29;
myArray[4] = new Object();
myArray[4].stuff = 36;
var sortArray = new Array();
var objHolder = new Object();
//copy .stuff values into sortArray
//copy objects into objHolder using o + .stuff as the index (so objHolder.o36 == myArray[x].stuff == 36)
for (i in myArray) {
sortArray[i] = myArray[i].stuff;
objHolder["o"+myArray[i].stuff] = myArray[i];
}
sortArray.sort();//use the javascript sort method
//sortArray.reverse(); //even reverse if you want to
//repopulate myArray with the objects in desired order.
for (i in sortArray) {
myArray[i] = objHolder["o"+sortArray[i]];
}
- JS
function sortit(a,b){
return(a-b)
}
myArray.sort(sortit);
See if that works!
- JS