Yuki's Tech Blog

仕事で得た知見や勉強した技術を書きます。

【Ruby】【TS】オブジェクトやハッシュのキーを取り出して配列を作成してみた

目次

背景

仕事でオブジェクトやハッシュのキーを取り出して配列を作ることがよくあるので、忘れないようにブログにまとめようと思います。

TSの場合

TSの場合、Object.keysを使用します。keysメソッドの引数にキーを取り出して配列にしたいオブジェクトを指定します。

const user = {
  name: "yuki",
  age: 25,
  country: "Japan" 
};

const keys = Object.keys(user);
console.log(keys); // => ["name", "age", "country"]

Rubyの場合

Rubyの場合、keysメソッドを使用します。レシーバにキーを取り出して配列にしたいハッシュを指定します。

user = {
  name: "yuki",
  age: 25,
  country: "Japan" 
}

keys =  user.keys
p keys # => ["name", "age", "country"]

(※) ちなみにRubyではメソッドの仮引数が存在しない場合、メソッド呼び出し時に括弧を省略することができます。TSではこの場合、括弧が必要です。

enumの定数で配列を作る

モデルクラス.enumカラム名の複数形で、定数と整数が紐づいたハッシュが取得できます。そのハッシュに対してkeysメソッドを使用すると、enumの定数のみの配列を作成できます。

irb(main):001:0> Product.storage_temperatures
=> {"normal"=>0, "refrigerated"=>1, "semi_refrigerated"=>2, "frozen"=>3}
irb(main):002:0> Product.storage_temperatures.keys
=> ["normal", "refrigerated", "semi_refrigerated", "frozen"]
irb(main):003:0> Product.storage_temperatures.keys()
=> ["normal", "refrigerated", "semi_refrigerated", "frozen"]
irb(main):004:0>

参考記事

Object.keys() - JavaScript | MDN

class Hash (Ruby 3.1 リファレンスマニュアル)

Railsのenumを使いこなす方法(翻訳)|TechRacho by BPS株式会社

【Rails】 enumチュートリアル | Pikawaka