0

誰かが配列をループして必要な値を抽出することについて正しい方向に私を向けることができますか?それは私にそれを理解する問題を引き起こしています:

array = [{"response_message"=>nil, "response_client_message"=>nil, "response_customer_message"=>nil, "closed"=>true, "updated_at"=>2012-05-30 13:20:49 UTC, "created_at"=>2012-05-30 13:20:29 UTC, "token"=>"2fda85eab962fa6e27850605f2f948ca", "price"=>"$24.00", "amount"=>#<BigDecimal:7fa3f4485428,'0.24E2',9(18)>, "currency_code"=>"USD", "metadata"=>"{\"xxx\": 5, \"xxx\": 250, \"xxx\": true, \"support\": { \"email\": true, \"phone\": false } }", "line_items"=>[{"amount"=>#<BigDecimal:7fa3f4482fe8,'0.24E2',9(18)>, "notes"=>nil, "currency_code"=>"USD", "description"=>"1 day", "price"=>"$24.00", "feature_level"=>"{\"hotspots\": 5, \"vouchers\": 250, \"customizable_logins\": true, \"support\": { \"email\": true, \"phone\": false } }", "metadata"=>"{\"hotspots\": 5, \"vouchers\": 250, \"customizable_logins\": true, \"support\": { \"email\": true, \"phone\": false } }"}]}]

これらの1つは毎日生成されます。ループして、いくつかの値を提示する必要があります。私はこれを試しました:

array.select{|elem| elem[:updated_at]}

しかし、それは私に[]を与えます。

これをループして値を抽出するにはどうすればよいですか?また、line_items配列を取得する方法も理解する必要があります。

ありがとう

4

3 に答える 3

2
array.select{|elem| elem["updated_at"]}

記号ではなく文字列を渡す

于 2012-05-31T10:26:16.900 に答える
1

何を求めているのかは完全にはわかりませんが、その配列から値を抽出する場合は、次を試してくださいmap

array.map { |elem| elem["updated_at"] }

これにより、すべての「updated_at」値のリストが返されます。

于 2012-05-31T10:28:30.297 に答える
0

配列をループしてupdated_at値を収集する場合は、collect/mapメソッドを使用する必要があります。あなたの例では、elem ["updated_at"]と同じではないelem[:updated_at]を参照しています。

array.collect{|elem| elem["updated_at"]}
于 2012-05-31T10:33:00.853 に答える