假设我有一个这样的数组:
[1,2,3,4,5,6,7]
除了第一个乘以2之外,我怎样才能将该数组的每个其他数字相乘 所以我的新阵列看起来像这样
[1,4,3,8,5,12,7]
答案 0 :(得分:4)
您可以使用map
和with_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 :(得分: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]