如何对内部数组的元素求和?(Ruby)



假设我有一个这样的数组,

a = [[1, 2], [1, 4], [1, 8], [1, 16]]

如何在Ruby中将上面的内容转换为下面的内容?

a = [3, 5, 9, 17]

提前Thx!

我会选择:

a = [[1, 2], [1, 4], [1, 8], [1, 16]]
a.map!(&:sum)
#=> [3, 5, 9, 17]

方法1:
使用map,在其中添加内部2元素数组的2个元素。块{ ... }返回最后计算的表达式,即x + y:

a = [[1, 2], [1, 4], [1, 8], [1, 16]]
a = a.map{ |x, y| x + y }
puts a.inspect
# [3, 5, 9, 17]

方法2:
使用map,然后使用sum内部数组的所有元素,并返回总和:

a = [[1, 2], [1, 4], [1, 8], [1, 16]]
a = a.map{ |el| el.sum }
puts a.inspect
# [3, 5, 9, 17]

最新更新