0

i am trying to organize the index of objects in an array by their first key/value

i have an array objects that are not organized like they should be.

they have to be in order an so I can appropriately add their timers. you can see below they are unorganized and the timers are messed up.

I tried adding object keys but it complicated everything. thanks

var myObject = 
[ 
  { stepNumber: 2,
    sendTimeFromNow: 259200000 },
  { stepNumber: 1,    
    sendTimeFromNow: 259200000 }
]
Bill Hanery
  • 81
  • 1
  • 1
  • 6

3 Answers3

0

Basic array sorting should work.

myObject.sort((a, b) => {
    return a < b ? -1 : a > b ? 1 : 0;
});

In your case you will need to compare properties on a and b:

myObject.sort((a, b) => {
    return a.stepNumber < b.stepNumber ? -1 : a.stepNumber > b.stepNumber ? 1 : 0;
});
Ryan Wheale
  • 26,022
  • 8
  • 76
  • 96
0

Use sort.

Order by stepNumber (alternate a and b for ascending or descending order)

myObject.sort((a, b) => a.stepNumber - b.stepNumber)

mallendeo
  • 1,507
  • 1
  • 9
  • 13
-1

You can use Array.sort. Here is an example of it in action:

myObject.sort(function(a, b){
    var setNumberA = 123, //some number
        setNumberB = 4567; //some other number
    // Then just compare the 2 dates
    if(setNumberA < setNumberB) return -1;
    if(setNumberA > setNumberB) return 1;
    return 0;
});

Hope this helps!

zoecarver
  • 5,523
  • 2
  • 26
  • 56