Calculer la dérivée ([i] - [i - 1]) en rubis
-
06-07-2019 - |
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]
}
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