嗨我有一个我使用push
创建的数组
arr.push(h, s.power)
PS:h
和s.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
答案 0 :(得分:3)
您应该考虑使用Hash
。请参阅ruby hash documentation here。
因此,不要将h
和s.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
如果我理解你的问题,这应该是一个干净的方式来做你想要的。