[解決済み] Ruby/RailsでHashからキーを削除して残りのHashを取得する方法は?
2022-03-16 17:08:46
質問
Hash I doに新しいペアを追加したい。
{:a => 1, :b => 2}.merge!({:c => 3}) #=> {:a => 1, :b => 2, :c => 3}
Hashからキーを削除する同様の方法はありますか?
これは有効です。
{:a => 1, :b => 2}.reject! { |k| k == :a } #=> {:b => 2}
のようなものを期待したいところですが。
{:a => 1, :b => 2}.delete!(:a) #=> {:b => 2}
戻り値が残りのハッシュになることが重要なので、次のようなことができました。
foo(my_hash.reject! { |k| k == my_key })
を1行にまとめたものです。
解決方法は?
Railsにはexcept/except!メソッドがあります。 は、これらのキーを削除したハッシュを返します。すでにRailsを使っているなら、これの独自バージョンを作る意味はないでしょう。
class Hash
# Returns a hash that includes everything but the given keys.
# hash = { a: true, b: false, c: nil}
# hash.except(:c) # => { a: true, b: false}
# hash # => { a: true, b: false, c: nil}
#
# This is useful for limiting a set of parameters to everything but a few known toggles:
# @person.update(params[:person].except(:admin))
def except(*keys)
dup.except!(*keys)
end
# Replaces the hash without the given keys.
# hash = { a: true, b: false, c: nil}
# hash.except!(:c) # => { a: true, b: false}
# hash # => { a: true, b: false }
def except!(*keys)
keys.each { |key| delete(key) }
self
end
end
関連
-
[解決済み】Rails: sudo "コマンドが認識されないのはなぜですか?
-
[解決済み] Ruby on Railsのマイグレーションでデータベースのカラムの名前を変更するにはどうすればよいですか?
-
[解決済み] Rubyからシェルコマンドを呼び出す方法
-
[解決済み] Ruby on Railsで現在の絶対URLを取得するにはどうすればよいですか?
-
[解決済み] Rubyで乱数を取得する方法
-
[解決済み] ハッシュマップのキーを指定して、値を更新するには?
-
[解決済み] Ruby on RailsでJSON出力を "きれい "にフォーマットする方法
-
[解決済み] RVM (Ruby Version Manager) をシステムから削除する方法
-
[解決済み] Java Hashmap。値からキーを取得する方法は?
-
[解決済み] RubyのハッシュオブジェクトをJSONに変換する方法は?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】TypeError: SymbolからIntegerへの暗黙の変換がない。
-
[解決済み] Railsサーバーがポートはすでに使用されていると言う、そのプロセスを殺すにはどうすればよいですか?
-
[解決済み] デバイスを使用する現在のユーザーメソッド
-
[解決済み] rake db:migrateを使って1ステップだけロールバックする方法
-
[解決済み] 検索 vs 発見する by vs どこに
-
[解決済み] Oauth2 Instagram API "リダイレクトURIが登録されたリダイレクトURIと一致しない"
-
[解決済み] Railsです。gemを使った特定バージョンのライブラリのアンインストール
-
[解決済み] Rspec が私のモデルクラスを認識しない。初期化されていない定数エラー
-
[解決済み] Railsでグループとカウント
-
[解決済み] Ruby on Railsです。複数のハッシュキーを削除する