【发布时间】:2014-06-23 17:06:58
【问题描述】:
我有一个字符串数组,如下所示
b=["yesterday: 40", "today: 20", "change: +3", "changes_2: 10.00%", "high: 30", "low: 20"]
如何从该数组中获取值 40、20、+3、10.00%、30 和 20 的集合
我已经完成了
c = b.map {|n| n.split(" ")}
返回
[["yesterday:", "40"], ["today:", "20"], ["change:", "+3"], ["changes_2:", "10.00%"], ["high:", "30"], ["low:", "20"]]
【问题讨论】:
-
考虑在数组上使用
map,然后在映射块中的每个组件字符串上使用String#split,以提取您想要的内容。 -
你已经接近了!如您所见,
String#split返回一个数组,因此您可以选择它的特定索引从map块返回,而不是仅仅聚合从split返回的所有数组。 -
@ChrisHeald ...我已经按照您所说的进行了映射和拆分。我现在如何提取值,我做了 c.first.last 并得到了 40,但是当我做了 d= c.each{|x| x.last} 我仍然得到 c 返回的相同数组