【问题标题】:access values from multidimen array in ruby从 ruby​​ 中的多维数组访问值
【发布时间】:2014-06-01 17:28:14
【问题描述】:

您好,我有一个像这样使用push 创建的数组

arr.push(h, s.power)  

PS:hs.power 都是变量,但取决于我应用的条件

最后是这样的

[22,"0.014",22,"0.01",22,"0.01",22,"0.082",22,"0.0002",22,"0.02822",22,"0.0042822",22,"0.041662",21,"0.0042822",21,"0.11107"]

但现在我想为每个新值创建新数组,例如22, 21,但我无法使用我尝试过的许多组合访问它,例如arr[22]arr.map

【问题讨论】:

  • 我还不明白你的问题。你能详细说明一下吗?你想得到什么新数组?
  • 现在我想为每个新值创建新数组,例如 22、21 - 你能详细说明一下吗?你能显示所需的输出吗?

标签: ruby-on-rails ruby arrays multidimensional-array


【解决方案1】:

您应该考虑改用Hash。见ruby hash documentation here

因此,与其将hs.power 推入数组,不如将它们添加到哈希中,如下所示:

my_hash[h] ||= []
my_hash[h].push(s.power)

第一行确保您在哈希中有一个数组,用于最新值h。第二个将s.power 添加到该数组中。

如果您重复运行此代码,您最终将得到一个数组,对应 h 的每个唯一值,您可以像这样访问它:

my_hash[22] # <= returns the array of s.power values for h=22
my_hash[21] # <= returns the array of s.power values for h=21

如果我正确理解你的问题,这应该是一种干净的方式来做你想做的事。

【讨论】:

  • 谢谢,这正是我想要的
猜你喜欢
  • 2023-03-11
  • 1970-01-01
  • 2023-03-24
  • 2013-09-01
  • 1970-01-01
  • 1970-01-01
  • 2013-06-12
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多