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 } }"}]}]

其中一个每天都会生成,我需要循环并呈现一些值。我试过这个:

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 回答