说我有以下内容:
a = [1,2,3,4,5,6,7,8]
如何将其转换为每对的平均值?
也就是说,我该如何制作
a = [1.5,3.5,5.5,7.5]
我的意思是,我可以做到
我正在考虑a.step(2),然后......涉及each_with_index的事情?
编辑:我明白这一点:arr.each_with_index.map { |x,i| [x, i+2] }
arr.each_with_index.map { |x,i| (x + arr[i+1])/2 }
然后过滤掉所有偶数指数?
答案 0 :(得分:4)
each_slice(2)
和map
会在这里解决问题:
[1,2,3,4,5,6,7,8].each_slice(2).map { |x,y| (x+y)*0.5 }
=> [1.5, 3.5, 5.5, 7.5]
each_slice
一次迭代数组 n 元素,然后我们map
转换生成的枚举数。