2013-05-19 15 views
8

ho questa matrice:elemento Array aggiunte in rubino

a1 = [1,2,3,4] 

voglio generare questo array da a1:

a2 = [3, 5, 7] 

La formula è [a1[0] + a1[1], a1[1] + a1[2], ...].

Qual è il modo Ruby per fare questo?

risposta

14

Sì, si può fare questo, come di seguito:

a1 = [1,2,3,4] 
a2 = a1.each_cons(2).map{ |a| a.inject(:+) } #=> [3, 5, 7] 
+7

La seconda linea potrebbe anche essere 'a2 = a1.each_cons (2) .map {| a, b | a + b} 'che trovo un po 'più facile da leggere. –