所以,我需要将两个数组一起添加到第三个数组中。 EG
a = [1,2,3,4]
b = [3,4,5,6]
这样:
c = [4,6,8,10]
我读了这里给出的答案:https://stackoverflow.com/questions/12584585/adding-two-ruby-arrays
但是我正在使用codecademy labs ruby编辑器而且它不能在那里工作,而且我的数组的长度总是相同的。另外,我不知道方法“.with_index”是什么或做什么,我不明白为什么当值已经是整数时必须使用“.to_i”。
看起来这应该很简单?
答案 0 :(得分:3)
选项1 :
对于纯Ruby 解决方案,请尝试使用transpose
方法:
a = [1,2,3,4]
b = [3,4,5,6]
c = [a, b].transpose.map{|x, y| x + y}
#=> [4,6,8,10]
选项2 :
如果您在Rails环境中,可以使用Rails'sum
方法:
[a, b].transpose.map{|x| x.sum}
#=> [4,6,8,10]
<强>说明强>:
transpose
适用于您的场景,因为如果子阵列的长度不同,它会引发IndexError
。来自the docs:
假设self是一个数组数组并转换行和列。 如果子数组的长度不匹配,则引发IndexError。
答案 1 :(得分:3)
a = [1,2,3,4]
b = [3,4,5,6]
a.zip(b).map { |i,j| i+j } # => [4, 6, 8, 10]
下面
a.zip(b) # => [[1, 3], [2, 4], [3, 5], [4, 6]]
和map
将每个2元组转换为其元素的总和。