嗨,我用push
创建了一个像这样的数组
arr.push(h, s.power)
PS: h
和s.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哈希文档。
因此,您可以将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
如果我对你的问题理解正确的话,这应该是一种干净的方式来做你想做的事情。