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
  • 71
  • 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
  • 22,467
  • 7
  • 67
  • 87
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,402
  • 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
  • 4,483
  • 2
  • 25
  • 50