J'ai cet array discontinue :
a = [1, 2, 3, 7, 8, 10, 11, 12]
J'ai besoin qu'il soit un array d'arrays continus :
[[1, 2, 3], [7, 8], [10, 11, 12]]
Je parcours l'original, comparant chaque valeur à la dernière pour construire de nouveaux arrays :
parts = []
last = nil
a.each do |n|
parts.push [] if last.nil? || last+1 != n
parts.last.push n
last = n
end
Cela semble sale et non digne de Ruby. Je suis intéressé par trouver une solution propre et élégante.