2013-09-26 29 views
0

比方说,我有一个这样的数组:如何乘数组的每个其他元素?

[1,2,3,4,5,6,7] 

我怎么能由2 所以我的新的阵列看起来像这样

[1,4,3,8,5,12,7] 
+4

是否要乘数组中的每个奇数索引值或数组中的每个偶数? –

回答

4

乘以该阵列的所有其他号码,除了你第一次可以使用mapwith_index

[1,2,3,4,5,6,7].map.with_index{|v,i| i % 2 == 0 ? v : v * 2 } 
# => [1, 4, 3, 8, 5, 12, 7] 
+1

'i%2 == 0'可以替换为['evenven?'](http://www.ruby-doc.org/core-2.0.0/Integer.html#method-i-even- 3F)。 – toro2k

1
[1,2,3,4,5,6,7].each_slice(2).flat_map{|k, l| [k, *(l * 2 if l)]} 
# => [1, 4, 3, 8, 5, 12, 7] 
相关问题