====== Les tableaux ====== ===== créer un tableau ===== * %w["string1", "string2"] : crée un tableau de strings * Array#map{|item| block} ([[http://ruby-doc.org/core-2.0/Array.html#method-i-map|documentation]]) : crée un nouveau tableau en exécutant le block sur chaque élément de Array * Array#select{|item| block} ([[http://ruby-doc.org/core-2.0/Array.html#method-i-select|documentation]]) : crée un nouveau tableau en filtrant les éléments de Array sur la base du block ===== Ajouter des éléments ===== * tab.push(elem) : ajoute elem à la fin de tab * tab << elem : idem * tab << elem << elem2 : ajout chaîné ===== trier un tableau ===== * Array#sort {|itemX, itemY| block} ([[http://www.ruby-doc.org/core-1.9.3/Array.html#method-i-sort|doc]]) : tri un tableau en comparant les éléments un à un (itemX / itemY) puis en exécutant block ===== Accéder aux éléments ===== * tab[index] : accède à l'élément index de l'array tab * tab[-index] : accède à l'élément -index de l'array tab. Les éléments négatifs sont comptés depuis le dernier élément du tableau, à partir de 1. * tab[début, nombre] : renvoie nombre d'éléments du tableau tab, à partir de la position début exclue * tab[range(début)..range(fin)] : renvoie les éléments de tab situés entre range(début) et range(fin) inclus. * tab.first, tab.last : accède au premier élément (first) et dernier élément (last) de tab. Utiliser un //Range// pour accéder facilement aux éléments d'un tableau tab[2..-1] est équivalent à tab[2..(tab.length-1)] ===== Manipuler un tableau ===== * tab.reverse : inverse les éléments du tableau tab sans modifier tab (Renvoie un nouveau tableau, sinon tab.reverse!) * tab.shuffle : mélange les éléments du tableau tab sans modifier tab (Renvoie un nouveau tableau, sinon tab.shuffle!) * tab#join(SEP) ([[http://www.ruby-doc.org/core-1.9.3/Array.html#method-i-join|doc]]) : renvoie un objet String contenant les éléments de tab séparés par SEP * string#split(SEP) : éclate la chaîne string dans un tableau, en utilisant SEP comme séparateur