Rubyで2次元配列をある要素を基準にしてソートする方法

結論

「.sort_by(&:last)」「.sort_by(&:first)」でいけます。

これ結構使います。私は二次元配列魔だからです。

私みたいな素人には限界があります

「ある要素」とは言うてますが、私は「最初と最後」に限定します。別の位置の要素でも出来るのですが、自分が可読できない、理解できないコードは一旦飛ばす信条でやってます。いつかわかればいいかなって感覚です。(それはずっとやらないやつや笑!)

#サンプル配列
array = [["taro", "soccer", 1], ["jiro", "baseball", 3], ["kumi", "ski", 2]]

「最初と最後」の意味するもの

  • 最初とは各配列の先頭の値です。「taro, jiro, kumi」ですね。
  • 最後とは各配列の後尾の値です。「1, 3, 2」ですね。

ソート方法

イディオムとして暗記します。(テストには出ませんが笑)

#配列要素の最初か最後でソートする
array.sort_by(&:first) #名前を基準にソート
array.sort_by(&:last) #数字を基準にソート

参考にしたサイト

Google検索「ruby 二次元配列 要素 ソート

Rubyで二次元配列をsortしたい – Qiita

タイトルとURLをコピーしました