6 votes

Ruby- Ajouter/soustraire des éléments d'un tableau à un autre tableau

C'est ce que je fais :

a = [1,2,3,4]  
b = [2,3,4,5]  
c = b - a  
put c 

J'obtiens ceci réponse -> [1]
Je veux cette réponse -> [1,1,1,1] (comme l'addition/soustraction matricielle)

J'ai essayé ceci :

c.each {|e| c[e] = b[e] - a[e]}  

mais j'obtiens cette réponse : [1,0,0,0]

Quelqu'un peut-il m'indiquer la marche à suivre ? Je vous remercie de votre attention.

18voto

Todd Yandell Points 8515

Vous pouvez utiliser fermeture éclair :

a.zip(b).map { |x, y| y - x }
# => [1, 1, 1, 1]

Il existe également un Matrice classe :

require "matrix"

a = Matrix[[1, 2, 3, 4]]
b = Matrix[[2, 3, 4, 5]]
c = b - a
# => Matrix[[1, 1, 1, 1]]

2voto

Andy Points 682

Vous pouvez utiliser each_with_index y map .

 c = b.each_with_index.map { |n,i| n - a[i] }
 # => [1, 1, 1, 1]

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X