在ruby中访问多维数组的值



嗨,我用push创建了一个像这样的数组

arr.push(h, s.power)  

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

结尾是这样的

[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)访问它

您应该考虑使用Hash。查看ruby哈希文档。

因此,您可以将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

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

相关内容

  • 没有找到相关文章

最新更新