簡體   English   中英

如何從哈希數組中獲取所需的哈希

[英]How to get required hash from a hash array

我有一系列形式的哈希:

[{"status"=>"Unshipped", "city"=>"thane", "buyer_name"=>"abc", "name"=>"abc def", "countryCode"=>"IN", "payment_method"=>"COD", "order_type"=>"StandardOrder", "y_id"=>"r123", "phone"=>"12345", "state"=>"Maharashtra", "service"=>"Expedited", "address_1"=>"abc xyz", "address_2"=>"yyyy", "postalCode"=>"400607", "shipped_by_y"=>"false", "channel"=>"MFN", "amout"=>"350.00"}, {"status"=>"Unshipped", "city"=>"Chembur, Mumbai", "buyer_name"=>"xyz", "name"=>"xyz lmn", "countryCode"=>"IN", "payment_method"=>"Other", "order_type"=>"StandardOrder", "y_id"=>"r124", "phone"=>"12436", "state"=>"Maharashtra", "service"=>"Expedited", "address_1"=>"add 1", "address_2"=>"add 2", "postalCode"=>"400071", "shipped_by_y"=>"false", "channel"=>"MFN", "amout"=>"399.00"}]

我要從此數組中選擇具有鍵y_id值的元素。 例如。 如果我想使用'y_id' = 'r124'獲得元素,我應該得到:

{"status"=>"Unshipped", "city"=>"Chembur, Mumbai", "buyer_name"=>"xyz", "name"=>"xyz lmn", "countryCode"=>"IN", "payment_method"=>"Other", "order_type"=>"StandardOrder", "y_id"=>"r124", "phone"=>"12436", "state"=>"Maharashtra", "service"=>"Expedited", "address_1"=>"add 1", "address_2"=>"add 2", "postalCode"=>"400071", "shipped_by_y"=>"false", "channel"=>"MFN", "amout"=>"399.00"}

您應該使用find API。 它返回與您要查找的內容匹配的第一個元素;如果未找到,則返回nil

arr.find { |element| element['y_id'] == 'r124' }

將返回:

{"status"=>"Unshipped", "city"=>"Chembur, Mumbai", "buyer_name"=>"xyz", "name"=>"xyz lmn", "countryCode"=>"IN", "payment_method"=>"Other", "order_type"=>"StandardOrder", "y_id"=>"r124", "phone"=>"12436", "state"=>"Maharashtra", "service"=>"Expedited", "address_1"=>"add 1", "address_2"=>"add 2", "postalCode"=>"400071", "shipped_by_y"=>"false", "channel"=>"MFN", "amout"=>"399.00"}

您應該可以使用

arr.find { |i| i['y_id] == *value* }

這將遍歷您的哈希數組,其中i是任何給定的哈希值。 Select將返回一個對象數組,其中該塊解析為true

因此,例如,如果您傳入r123作為value ,它將返回

{"status"=>"Unshipped", "city"=>"thane", "buyer_name"=>"abc", "name"=>"abc def", "countryCode"=>"IN", "payment_method"=>"COD", "order_type"=>"StandardOrder", "y_id"=>"r123", "phone"=>"12345", "state"=>"Maharashtra", "service"=>"Expedited", "address_1"=>"abc xyz", "address_2"=>"yyyy", "postalCode"=>"400607", "shipped_by_y"=>"false", "channel"=>"MFN", "amout"=>"350.00"}

得到哈希。 (感謝@BroiSatse)

暫無
暫無

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

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