首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Ruby中数组的修正形式

Ruby中数组的修正形式
EN

Stack Overflow用户
提问于 2014-11-19 14:24:00
回答 2查看 31关注 0票数 0

我希望有人能帮忙。

我有一个数组是通过调用Google电子表格返回的,该电子表格返回如下:

代码语言:javascript
复制
{"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!,如果我真正理解这个函数,就不需要问这个问题了!任何帮助都将是非常感谢的。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-11-19 14:28:54

map返回由每个元素的块计算结果组成的数组。所以你应该:

代码语言:javascript
复制
result = array.map do |data|
  {
    x: data['2014 week'],
    y: data['reach']
  }
end
票数 1
EN

Stack Overflow用户

发布于 2014-11-19 14:43:44

马立克·利普卡说得对--我记得当时我找不到地图,所以这里有一个更详细的解释。

假设array的定义如下所示,他的答案相当于这段代码:

代码语言:javascript
复制
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做的事情和每个都完全一样,但是把它所做的任何事情的结果都推到数组中,所以您不必这样做。

希望这有助于解释,但是勾选马立克的答案--这太长了,不能发表评论

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27019268

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档