【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 リファレンスマニュアル)