Question

Trivial utilisant une boucle for ou each_with_index, se demandant simplement s'il existait un meilleur moyen de le faire en utilisant la syntaxe Ruby.

Je dois créer un nouveau tableau dérivé du tableau source, par exemple:

for(int i = 1; i < oldArray.length; i++)
{
    newArray[i] = oldArray[i] - oldArray[i-1]
}
Était-ce utile?

La solution

old_array.each_cons(2).map{|x, y| y - x}

Enumerable # each_cons appelé avec une taille de bloc de 2 mais sans bloc renvoie un énumérateur qui itérera sur chaque paire d'éléments consécutifs dans old_array . Ensuite, nous utilisons simplement map pour effectuer une soustraction sur chaque paire.

Autres conseils

last=0
new = old.map{|v|x=v-last;last=v;x}[1..-1]
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top