【GAS】目的別sortメソッドの記述方法(一次元配列・二次元配列の並び替え)

GASsort,配列

sortメソッドの用いた一次元配列、二次元配列の並び替え記述方法を目的別にご紹介します。

本記事で紹介している記述の裏側の仕様やsortメソッドについての詳細は下記の記事で解説しています。

一次元配列の並び替え

文字列の昇順(デフォルト)

  let animal = let animal = ['dog', 'tiger', 'elephant', 'cat', 'lion', 'monkey'];
  console.log(animal.sort()); //[ 'cat', 'dog', 'elephant', 'lion', 'monkey', 'tiger' ]

文字列の降順

 let animal = let animal = ['dog', 'tiger', 'elephant', 'cat', 'lion', 'monkey'];

//文字列の降順
  animal.sort((a, b) => {
    if(b > a){
      return 1;
    }else{
      return -1;
    }
  });

  console.log(animal); //	[ 'tiger', 'monkey', 'lion', 'elephant', 'dog', 'cat' ]

数字の昇順

  let numbers = [6, 90, 20, 3, 10, 55];
  numbers.sort((a, b) => {return a - b;} );
  console.log(numbers);//[ 3, 6, 10, 20, 55, 90 ]

 //デフォㇽトの文字列昇順ではうまくいかない
  let numbers = [6, 90, 20, 3, 10, 55]; 
  numbers.sort();
  console.log(numbers);//[ 10, 20, 3, 55, 6, 90 ]

数字の降順

  let numbers = [6, 90, 20, 3, 10, 55];
  numbers.sort((a, b) => {return b - a;} );
  console.log(numbers); //[ 90, 55, 20, 10, 6, 3 ]

二次元配列の並び替え

1列目(文字列)基準の昇順(デフォルト)

  let array = [['dog', 6], ['tiger', 90], ['elephant', 20], ['cat', 30], ['lion', 10], ['monkey', 55] ]
  array.sort();
  console.log(array);
  
 // [ [ 'cat', 30 ],
  // [ 'dog', 6 ],
  // [ 'elephant', 20 ],
  // [ 'lion', 10 ],
  // [ 'monkey', 55 ],
  // [ 'tiger', 90 ] ]

1列目(文字列)基準の降順

  let array = [['dog', 6], ['tiger', 90], ['elephant', 20], ['cat', 30], ['lion', 10], ['monkey', 55] ]
  array.sort((a, b) => {
    if(b > a){
      return 1;
    }else{
      return -1;
    }
  });
  console.log(array); 

// [ [ 'tiger', 90 ],
//   [ 'monkey', 55 ],
//   [ 'lion', 10 ],
//   [ 'elephant', 20 ],
//   [ 'dog', 6 ],
//   [ 'cat', 30 ] ]

2列目(数字)基準の昇順

  let array = [['dog', 6], ['tiger', 90], ['elephant', 20], ['cat', 30], ['lion', 10], ['monkey', 55] ]
  array.sort((a, b) => {return a[1] - b[1];} );
  console.log(array); 

  // [ [ 'dog', 6 ],
  // [ 'lion', 10 ],
  // [ 'elephant', 20 ],
  // [ 'cat', 30 ],
  // [ 'monkey', 55 ],
  // [ 'tiger', 90 ] ]

2列目(数字)基準の昇順

  let array = [['dog', 6], ['tiger', 90], ['elephant', 20], ['cat', 30], ['lion', 10], ['monkey', 55] ]
  array.sort((a, b) => {return b[1] - a[1];} );
  console.log(array); 

  // [ [ 'tiger', 90 ],
  // [ 'monkey', 55 ],
  // [ 'cat', 30 ],
  // [ 'elephant', 20 ],
  // [ 'lion', 10 ],
  // [ 'dog', 6 ] ]

複数条件の指定

  let array = [['dog', 6], ['cat', 90], ['elephant', 20], ['cat', 30], ['dog', 10], ['monkey', 55] ]

//複数条件の指定、名前→昇順、数値→降順
  array.sort((a, b) => {
    if(b[0] < a[0]){
      return 1;
    }else if((b[0] > a[0])){
      return -1;
    }else{
      if(b[1] < a[1]){
        return -1;
      }else{
      }
    }
  });
  console.log(array); 

// [ [ 'cat', 90 ],
//   [ 'cat', 30 ],
//   [ 'dog', 10 ],
//   [ 'dog', 6 ],
//   [ 'elephant', 20 ],
//   [ 'monkey', 55 ] ]

オブジェクトの並び替え

  let array = [ {'name':'Bob', 'age':17, 'score':82},
                {'name':'Cassie', 'age':18,'score':97},
                {'name':'Tom', 'age':16, 'score':90} ]

  array.sort((a, b) => {
    if(b.score > a.socre){
      return 1;
    }else{
      return -1;
    }
  });

  console.log(array);

  // [ { name: 'Tom', age: 16, score: 90 },
  // { name: 'Cassie', age: 18, score: 97 },
  // { name: 'Bob', age: 17, score: 82 } ]


  console.log(JSON.stringify(array)); 
	// [{"name":"Tom","age":16,"score":90},
  // {"name":"Cassie","age":18,"score":97},
  // {"name":"Bob","age":17,"score":82}]
この記事を書いた人

てつお
広告代理店出身、事業会社でWebマーケティングや開発の仕事をしている26歳です。プロフィール詳細はこちら
■Google広告認定資格|Google アナリティクス個人認定資格(GAIQ)|TOEIC920点