JavaScript sort of Array of arrays

后端 未结 2 447
情歌与酒
情歌与酒 2021-01-26 19:22

I have this array of arrays. I want it to be sorted by arrays\' length. I use array.sort( (a, b) => a.length > b.length) );

[ 
  [],
  [ 2, 2,         


        
相关标签:
2条回答
  • 2021-01-26 19:57

    To do the sort function, you have to provide the max, min equal (+1 (>0 actually), -1 (<0 actually), 0 (for equals)), the faster way is by substract the results:

    arr.sort(function(a, b){
      // ASC  -> a.length - b.length
      // DESC -> b.length - a.length
      return a.length - b.length ;
    });
    
    0 讨论(0)
  • 2021-01-26 20:01

    Just use the sort function using the subtraction between lengths:

      var a = [ 
      [],
      [ 2, 2, 2, 2, 2 ],
      [],
      [],
      [ 5 ],
      [ 3, 3, 3, 3 ],
      [],
      [],
      [ 1 ],
      [ 2, 2 ],
      [ 1 ],
      [],
      [ 4 ],
      [ 3 ],
      [ 1, 1 ],
      [],
      [ 5, 5 ],
      [],
      [],
      [ 4, 4, 4, 4, 4, 4 ],
      [],
      [ 3 ],
      [ 5 ],
      [],
      [ 5 ],
      [ 1, 1 ],
      [],
      [ 3 ],
      [],
      [],
      [],
      [],
      [ 4 ],
      [ 1 ],
      [ 4, 4, 4, 4 ],
      [],
      [ 5, 5, 5, 5 ],
      [],
      [],
      [ 3 ],
      [ 5 ],
      [ 2 ],
      [],
      [],
      [ 2 ],
      [],
      [],
      [ 1, 1, 1 ],
      [],
      [ 4 ],
      [ 3, 3, 3 ],
      [],
      [],
      [ 1, 1 ],
      [],
      [ 4, 4 ],
      [ 2, 2, 2 ],
      [],
      [ 2 ],
      [ 2 ],
      [ 4 ],
      [ 2 ],
      [ 3 ],
      [ 2 ],
      [],
      [],
      [],
      [ 5 ] ];
      a.sort(function(a, b) {
      return a.length - b.length;
      });
      console.log(a);

    0 讨论(0)
提交回复
热议问题