我想要打印此数组中所有组合的所有不同总和[1,2,3]。我想首先将每个求和结果推送到一个新的数组b中,然后使用b.uniq将它们打印出来,以便不重复总和结果。 但是,随着我的代码,3重复自己,我认为这是因为它被推入阵列的方式b。Ruby - 将数组中的值推送到新的数组
有没有更好的方法来做到这一点?
a = [1,2,3]
b = []
b.push a
b.push a.combination(2).collect {|a,b| (a+b)}
b.push a.combination(3).collect {|a,b,c| (a+b+c)}
puts b.uniq
p b #[[1, 2, 3], [3, 4, 5], [6]]
有人可以帮助我吗?我仍然是红宝石新手。
你需要在结果中嵌套数组吗? – nsave
不,我想把它们显示为单独的值.. – bisuke
那么你可以只是'p.flatten.uniq' – nsave