如何对内部数组的元素求和? (Ruby)
How do I sum the elements of the inner array? (Ruby)
假设我有一个这样的数组,
a = [[1, 2], [1, 4], [1, 8], [1, 16]]
如何在 Ruby 中将上面的内容转换为下面的内容?
a = [3, 5, 9, 17]
提前致谢!
方法一:
使用 map
,在其中添加内部 2 元素数组的 2 个元素。块 { ... }
return 是最后计算的表达式,即 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]
方法二:
使用map
,然后sum
内部数组的所有元素,和return总和:
a = [[1, 2], [1, 4], [1, 8], [1, 16]]
a = a.map{ |el| el.sum }
puts a.inspect
# [3, 5, 9, 17]
我会选择:
a = [[1, 2], [1, 4], [1, 8], [1, 16]]
a.map!(&:sum)
#=> [3, 5, 9, 17]
假设我有一个这样的数组,
a = [[1, 2], [1, 4], [1, 8], [1, 16]]
如何在 Ruby 中将上面的内容转换为下面的内容?
a = [3, 5, 9, 17]
提前致谢!
方法一:
使用 map
,在其中添加内部 2 元素数组的 2 个元素。块 { ... }
return 是最后计算的表达式,即 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]
方法二:
使用map
,然后sum
内部数组的所有元素,和return总和:
a = [[1, 2], [1, 4], [1, 8], [1, 16]]
a = a.map{ |el| el.sum }
puts a.inspect
# [3, 5, 9, 17]
我会选择:
a = [[1, 2], [1, 4], [1, 8], [1, 16]]
a.map!(&:sum)
#=> [3, 5, 9, 17]