Skip to content Skip to sidebar Skip to footer

Javascript Multidimentional Array Sorting By Numerical Order

I have a two dimensional array that I need to sort numerically. Here is a sample of the array: [0] [1] 3 320 55B 250 26 100 55A 260 56 310

Solution 1:

The parseInt method will ignore any string characters after the number, removing the A's and B's.

arr.sort(function(rowA, rowB){
    var a = parseInt(rowA[0], 10);
    var b = parseInt(rowB[0], 10);

    if (a > b)
        return1;
    elseif (a < b)
        return -1;
    return0;
});

Solution 2:

Just for note - if this A and B has nothing to do with sort, than go with parseInt as Zack posted.

But if it should be used in sort, you can go with something like this:

arr.sort(function(l,r){
  var vl = l[0].split(/(\d+)(\D*)/),
      vr = r[0].split(/(\d+)(\D*)/);

  vl[1] = parseInt(vl[1]);
  vr[1] = parseInt(vr[1]);

  if(vl[1] < vr[1]){
    return -1;
  }elseif(vl[1] === vr[1]){
      if(vl[2] < vr[2]) return -1;
      elseif(vl[2] === vr[2]) return0;
      elsereturn1;
  }else{
      return1;
  }
}); 

Post a Comment for "Javascript Multidimentional Array Sorting By Numerical Order"