[GAS]ObjectArrayでsort()メソッドを活用する方法

GAS

どうも櫻庭です。今回はObjectArrayでsort()メソッドを活用する方法について書き留めていきたいと思います。

ObjectArrayの操作をする際、プロパティ値をベースにObjectArrayの並べ替えをしたい時があります。 そのような際に今回の記事の内容は参考になります。

ObjectArrayの並べ替えをしたい時ってどんな時?

今回は例として以下のObjectArrayを用意しました。


const list = [ 
     { No : 5, name : Hashimoto, position : forward},
   { No : 74, name : Takeda, position : defense},
   { No : 87, name : Honda, position : midfielder},
   { No : 2, name ; Osaki, position : goal keeper}
   ];

じゃこのObject ArrayをNo順に並べ替えたい場合ってありますよね?

例えば、SSに貼り付ける前にNo順に配列を成型した場合です。

そのような場合に今回のsort()メソッドは役に立ちます。

sort()メソッドについて説明

そもそもsort()メソッドがどういうメソッドなのか知らないという人もいると思うので、

sort()メソッドについて軽くだけ触れたいと思います。

以下のように単純な文字列の配列であればsort()メソッドは簡単に使用できます。

const list = [“Hashimoto“, “Takeda”, “Osaki”, “Honda”];

list.sort()
console.log(list);

//result : [“Hashimoto“, “Honda”, “Osaki”, “Takeda” ];

このようにアルファベット順に並び替えをすることができます。

ですが、Object Arrayの場合はこのように書くことができないです。
少しだけ工夫が必要です。

ObjectArrayをsort()メソッドで並び替えする方法

室はこのsort()メソッドにはオプションがあります。

どいう言うものかというと、

「sort.([比較関数])」

という感じで、()の中に比較関数を投入することができるんですね。

ただここについて深堀して説明すると長くなってしまいますし、ここまで深い理解をする必要性はプログラマではない私たちにはないので、以下のコードを使うということを覚えておいてください。

ObjectArray.sort. ((a,b) => a.<b>プロパティ名</b> - b.<b>プロパティ名</b>)
//プロパティ値は同じものを投入してください

↑を使うことでObject Arrayのプロパティ値を使用して昇順で並び変えができるようになります。

今回例として上げたObjectArrayを並び変えると以下のようになります。

list.sort. ((a,b) => a.No - b.No)

console.log(list)
//result :  [ { No : 2, name ; Osaki, position : goal keeper},
      { No : 5, name : Hashimoto, position : forward},
   { No : 74, name : Takeda, position : defense},
   { No : 87, name : Honda, position : midfielder}];

まとめ

ObjectArrayの並び替えは↑のようにsort()メソッドでアロー関数を使用することでこのようにスッキリ書くことができます。 ぜひ活用する場面に遭遇した場合は本記事を参考にしてもらえればと思います。

Comments

Copied title and URL