Comment diviser (chunker) un tableau ruby en parties de x éléments ?

Créé le 09 Dec 2022 - Mis à jour le 04 Jul 2023 - Créé par Fabien Berthoux - rubyarrays

En Ruby, il existe un moyen facile et intuitif de diviser un tableau en parties de X éléments. Il s'agit de la méthode Array#chunk. Cette méthode est très utile pour organiser un tableau de façon à ce qu'il soit plus facile à lire et à comprendre. La méthode Array#chunk prend un argument qui spécifie le nombre d'éléments que chaque partie devrait contenir. Par exemple, si vous souhaitez diviser un tableau en parties de 4 éléments, vous pouvez utiliser la méthode comme ceci :

array = [1,2,3,4,5,6,7,8,9,10]
chunked_array = array.chunk(4)
# =>> [[1,2,3,4], [5,6,7,8], [9,10]]

Comment puis-je obtenir le nombre d'éléments dans chaque partie ?

Vous pouvez obtenir le nombre d'éléments dans chaque partie en utilisant la méthode Array#size. Par exemple, pour obtenir le nombre d'éléments dans la première partie :

chunked_array.first.size
# =>> 4

Comment puis-je obtenir le nombre total d'éléments dans le tableau ?

Vous pouvez obtenir le nombre total d'éléments dans le tableau en utilisant la méthode Array#length. Par exemple :

array.length
# =>> 10

Comment puis-je itérer sur chaque partie du tableau ?

Vous pouvez itérer sur chaque partie du tableau en utilisant la méthode Array#each. Par exemple, pour afficher chaque partie du tableau :

chunked_array.each do |chunk|
  puts chunk
end
# =>> [1,2,3,4]
# =>> [5,6,7,8]
# =>> [9,10]

Comment puis-je obtenir le premier élément de chaque partie ?

Vous pouvez obtenir le premier élément de chaque partie en utilisant la méthode Array#first. Par exemple :

chunked_array.map(&:first)
# =>> [1,5,9]

Comment puis-je obtenir le dernier élément de chaque partie ?

Vous pouvez obtenir le dernier élément de chaque partie en utilisant la méthode Array#last. Par exemple :

chunked_array.map(&:last)
# =>> [4,8,10]

Comment puis-je obtenir le nombre de parties dans le tableau ?

Vous pouvez obtenir le nombre de parties dans le tableau en utilisant la méthode Array#length. Par exemple :

chunked_array.length
# =>> 3

Comment puis-je obtenir le nombre d'éléments qui ne correspondent pas à la taille d'une partie ?

Vous pouvez obtenir le nombre d'éléments qui ne correspondent pas à la taille d'une partie en soustractant le nombre total d'éléments du nombre d'éléments d'une partie multiplié par le nombre de parties. Par exemple :

(array.length - chunked_array.length * 4).abs
# =>> 2