我有三个 Ruby 数组:
[1, 2, 3, 4]
[2, 3, 4, 5]
[3, 4, 5, 6]
如何取 position 0
、 position1
等所有三个数字的平均值并将它们存储在一个名为“Average”的新数组中?
a = [1, 2, 3, 4]
b = [2, 3, 4, 5]
c = [3, 4, 5, 6]
a.zip(b,c)
# [[1, 2, 3], [2, 3, 4], [3, 4, 5], [4, 5, 6]]
.map {|array| array.reduce(:+) / array.size }
# => [ 2,3,4,5]
尝试这个:
arr = ([1, 2, 3, 4] + [3, 4, 5, 6] + [2, 3, 4, 5])
arr.inject(0.0) { |sum, el| sum + el } / arr.size
连接可以通过多种方式完成,具体取决于您存储数组的方式。
作为语法糖,你也可以这样做:
arr.inject(:+).to_f / arr.size