我希望有人能帮忙。
我有一个数组是通过调用Google电子表格返回的,该电子表格返回如下:
{"2014 week"=>"01", "Weekly reach"=>"2.93"}
{"2014 week"=>"02", "Weekly reach"=>"3.37"}
{"2014 week"=>"03", "Weekly reach"=>"3.24"}
{"2014 week"=>"04", "Weekly reach"=>"2.39"}
{"2014 week"=>"05", "Weekly reach"=>"2.96"}
{"2014 week"=>"06", "Weekly reach"=>"6.31"}
{"2014 week"=>"07", "Weekly reach"=>"9.11"}
{"2014 week"=>"08", "Weekly reach"=>"8.59"}
{"2014 week"=>"09", "Weekly reach"=>"2.11"}
{"2014 week"=>"10", "Weekly reach"=>"2.24"}
{"2014 week"=>"11", "Weekly reach"=>"1.88"}
{"2014 week"=>"12", "Weekly reach"=>"2"}
{"2014 week"=>"13", "Weekly reach"=>"3"}
{"2014 week"=>"14", "Weekly reach"=>"2"}
{"2014 week"=>"15", "Weekly reach"=>"2"}
{"2014 week"=>"16", "Weekly reach"=>"3"}基本上,我想将这个数组修改为以下形式:
结果= {x:1,y: 2.93},{x:2,y:3.37},{x:3,y:3.24}.
由于我在Ruby中的地位,我正在挣扎,但相信解决方案在于arr.map!,如果我真正理解这个函数,就不需要问这个问题了!任何帮助都将是非常感谢的。
发布于 2014-11-19 14:28:54
map返回由每个元素的块计算结果组成的数组。所以你应该:
result = array.map do |data|
{
x: data['2014 week'],
y: data['reach']
}
end发布于 2014-11-19 14:43:44
马立克·利普卡说得对--我记得当时我找不到地图,所以这里有一个更详细的解释。
假设array的定义如下所示,他的答案相当于这段代码:
array = [
{"2014 week"=>"01", "Weekly reach"=>"2.93"},
{"2014 week"=>"02", "Weekly reach"=>"3.37"},
{"2014 week"=>"03", "Weekly reach"=>"3.24"},
{"2014 week"=>"04", "Weekly reach"=>"2.39"},
{"2014 week"=>"05", "Weekly reach"=>"2.96"},
{"2014 week"=>"06", "Weekly reach"=>"6.31"},
{"2014 week"=>"07", "Weekly reach"=>"9.11"},
{"2014 week"=>"08", "Weekly reach"=>"8.59"},
{"2014 week"=>"09", "Weekly reach"=>"2.11"},
{"2014 week"=>"10", "Weekly reach"=>"2.24"},
{"2014 week"=>"11", "Weekly reach"=>"1.88"},
{"2014 week"=>"12", "Weekly reach"=>"2"},
{"2014 week"=>"13", "Weekly reach"=>"3"},
{"2014 week"=>"14", "Weekly reach"=>"2"},
{"2014 week"=>"15", "Weekly reach"=>"2"},
{"2014 week"=>"16", "Weekly reach"=>"3"},
]
result = []
array.map do |data|
result << { x: data['2014 week'], y: data['reach'] }
end
return result因此,map做的事情和每个都完全一样,但是把它所做的任何事情的结果都推到数组中,所以您不必这样做。
希望这有助于解释,但是勾选马立克的答案--这太长了,不能发表评论
https://stackoverflow.com/questions/27019268
复制相似问题