-2

I have this:

0 : [dns: 29, connect: 3, send: 0, wait: 183, receive: 0]
1 : [dns: 143, connect: 8, send: 0, wait: 791, receive: 1416]
2 : [dns: 143, connect: 23, send: 0, wait: 910, receive: 3741]
3 : [dns: 142, connect: 7, send: 0, wait: 785, receive: 823]
4 : [dns: 143, connect: 25, send: 0, wait: 925, receive: 3741, …]
5 : [dns: 159, connect: 40, ssl: 47, send: 0, wait: 940, …]
6 : [dns: 159, connect: 40, send: 0, wait: 962, receive: 3742]

I want this array to be sorted by the sum of dns, connect, send, wait, receive

Raul Martin
  • 521
  • 1
  • 6
  • 19

2 Answers2

3

Use Array's sort() method, eg

myArray.sort(function(a, b) {
    return a['dns']+ a['connect'] + .. - b['dns']- b['connect'] + ..;
});
Shyam Tayal
  • 486
  • 2
  • 13
0

Ok, with the help of you guys, I managed to do it, was easy :D

            function compare(a,b) {

             var sumA = a.connect + a.dns + a.receive + a.send + a.wait;
             var sumB = b.connect + b.dns + b.receive + b.send + b.wait;

             if (sumA < sumB)
                return 1;
             if (sumA > sumB)
                return -1;
             return 0;

            }

           arr.sort(compare);

Thank you!

Raul Martin
  • 521
  • 1
  • 6
  • 19