خرید بک لینک

Vote count: 0

I have been breaking my brain for the last 2 days trying to find a solution to the problem but I can't figure it out.

I need to sort an array of arrays first numerically and then lexicographically. While a custom a < b function can solve the first, a normal array.sort() can do the second. But I have no clue how to combine them.

I have an array similar to this one:

var arr = [
    [ '80', '1', '230' ],
    [ '9', '1', '230' ],
    [ 'Ken', '6', '100' ],
    [ 'Dan', '2', '800' ],
    [ 'Tom', '6', '500' ],
    [ 'team10', '2', '222' ],
    [ 'team9', '2', '222' ]
  ];

This array needs to be sorted numerically first according to the numbers in arr[n][1] (largest to smallest). Results with the same arr[n][1] value need to them be ordered numerically according to arr[n][2] (largest to smallest). And finally results with the same value [n][1] and [n][2] need to be ordered lexigographically based on arr[n][0].

The farthest I have gotten so far is this approach:

function sortArr() {
       arr.sort(function(a,b) {
          if (a[1] === b[1]) {
              if (a[2] === b[2]) {
                  retu b[0] < a[0];
              }
              retu a[2]-b[2];
          }
          retu b[1]-a[1]
      });
  }

While the numerical sorting works with this, the lexicographical sorting doesn't. Any help would be appreciated.

asked 33 secs ago

برچسب: نویسنده: استخدام کار تاريخ: دوشنبه 4 مرداد 1395 ساعت: 12:42

صفحه بندی