簡體   English   中英

從哈希數組中獲取特定鍵的值

[英]Fetch the value of a specific key from the hash array

params = [{id: 1, name: 'hoge'}, {id: 2, name: 'fuga'}]

我知道我可以通過這種方式獲取特定鍵的值。

params.map{ |u| u.name }
=> ["hoge", "fuga"]

但是,我想做到以下所示,

params.map(&:name)

如果參數是ActiveRecord,則可以按照上述方式進行。 即使params是哈希值,也請告訴我是否有人知道該怎么做?

給定

params = [{id: 1, name: 'hoge'}, {id: 2, name: 'fuga'}]

正如emaillenin所說,您可以執行以下操作:

params.map { |p| OpenStruct.new(p) }.map(&:name)

但是,如果您這樣做:

params.map { |p| OpenStruct.new(p).name }

您保存一個迭代和七個按鍵。 如果您這樣做:

params.map { |p| p[:name] }

您另外保存14個字符。 但是,您不能執行以下操作:

params.map{ |u| u.name }

如果u是一個Hash 您也不能這樣做:

params.map(&:name)

如果您使用的是鐵軌,而不是香草紅寶石,那么您真正想要的就是pluck

params = [{id: 1, name: 'hoge'}, {id: 2, name: 'fuga'}]
params.pluck(:name)

=> ["hoge", "fuga"]

https://apidock.com/rails/ActiveRecord/Calculations/pluck

params = [{id: 1, name: 'hoge'}, {id: 2, name: 'fuga'}]
params.map { |p| OpenStruct.new(p) }.map(&:name)

# ["hoge", "fuga"]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM