【发布时间】:2020-07-02 12:59:35
【问题描述】:
我从 API 获取一些数据并使用 apidata = JSON.parse(response) 解析 JSON。它看起来像这样:
> puts(apidata['values'])
{"a"=>{"value"=>"..."}, "b"=>"..."}
{"a"=>{"value"=>"..."}, "b"=>"..."}
{"a"=>{"value"=>"..."}, "b"=>"..."}
{"a"=>{"value"=>"..."}, "b"=>"..."}
[...]
我想创建一个数组,在所有元素中只包含b 的值,所以我可以将.join() 转换为一个字符串。
这可行:
array = Array.new
for item in apidata['values']
array.push(item['b'])
end
string = array.join(',')
但是对于一个相当简单的任务来说似乎有很多代码。有没有更短的方法来做同样的事情?
【问题讨论】:
-
在 Ruby 中,我们避开
for并使用each和map。为什么是一个不同的问题,并且在这里和互联网上都有很好的介绍。不要使用puts来显示apidata['values'],而是将其分解为几个元素并将实际定义放入问题中。否则会迫使我们重建变量/数组,这会浪费我们的时间并导致响应的可变性,这是不受欢迎的。 "MCVE"