Vous pouvez me contacter via Facebook pour questions & suggestions :
Page Facebook relative à mon site
Les tableaux indicés ('arrays') sont des structures de données essentielles en JS permettant de stocker plusieurs valeurs dans une
seule variable.
En JavaScript on désigne par "array" une liste indicée de valeurs.
Un objet Array peut être à une ou plusieurs dimensions.
Dans un 'array' chaque valeur est repérée par son rang (ou indice).
Attention le premier terme a l'indice zéro !
L'indice d'un élément découle de l'ordre de saisie ; il n'est jamais saisi.
Familiarisons nous avec la syntaxe, en produisant des commandes qui suivent dans la console du navigateur.
Saisir les lignes précédées du chevron.
La ligne qui suit est la réponse à la commande.
> premiers = [1,2,3,5,7,11] (6) [1, 2, 3, 5, 7, 11] > premiers.reverse() (6) [11, 7, 5, 3, 2, 1] > premiers.sort() (6) [1, 11, 2, 3, 5, 7] > premiers.shift() 1 > premiers.pop() 7 > premiers (4) [11, 2, 3, 5] > premiers.push(1) 5 > premiers.push(7) 6 > premiers (6) [11, 2, 3, 5, 1, 7] > premiers.unshift(13,17) 8 > premiers (8) [13, 17, 11, 2, 3, 5, 1, 7] > premiers.length 8 > pairs = new Array(2,4,6,8) Array(4) [ 2, 4, 6, 8 ]
Après avoir créé un tableau indicé, j'ai appliqué différentes méthodes qui modifient le tableau.
Pour connaitre le nombre d'éléments d'un tableau il faut utiliser la propriété length.
J'ai dit "propriété (et non pas méthode) d'où l'absence de parenthèse après le mot clé "length".
Pour afficher le contenu du tableau il suffit de taper son nom.
J'ai créé le tableau pairs non pas de façon littérale mais via la constructeur Array().
Attention, dans cette solution les crochets sont remplacés par des parenthèses.
Ci-dessous je vous propose une autre solution pour modifier une valeur, rajouter une valeur : l'accès via l'indice.
> score = [5,6,9,12] (4) [5, 6, 9, 12] > score[0] = 7 7 > score[4] = 11 11 > score (5) [7, 6, 9, 12, 11]
L'élément d'indice zéro a été modifié puis j'ai rajouté l'élément d'indice 4 (cinquième élément).
Je vous présente deux techniques pour parcourir un objet Array qui contient les nombres premiers jusqu'à 100.
Astuce : le premier élément d'un tableau a l'indice 0 (et non pas 1) donc le tableau comprend 13 items et le premier item est une chaine vide.
Les tableaux "clé-valeur" OU tableaux associatifs ça existe enfin dans JavaScript depuis ECMAScript6.
Un map peut remplacer avantageusement un array d'objets. En effet un map se manipule plus simplement qu'un array d'objets grâce à de nombreuses méthodes dédiées.
Quel serait le map reprenant les mêmes informations ? Je rappelle qu'on raisonne en paires de "clé-valeur". Le nom devient la clé et la modèle devient la valeur.
Dans la première partie : création et parcours du map.
Création d'un map : il faut utiliser obligatoirement le constructeur Map().
À l'intérieur des parenthèses on retrouve la syntaxe d'un tableau indicé à deux dimensions.
Pour parcourir un objet Map on utilise la boucle for (let ... of nomMap.méthode())
Dans cette deuxième partie, je modifie le contenu du map.
Notez l'autre syntaxe pour afficher clés & valeurs : document.write(voiture[0] + " - " + voiture[1] ...
La propriété size (et non pas length) indique le nombre de paires "clé-valeur" dans le map.
La méthode clear() vide le map de tout contenu mais le ne supprime pas !
Un "set" est une collection de données à valeurs uniques (pas de doublons).
La dernière version de JavaScript propose désormais ce type de structure de données.
À la différence d'un array, un set est une collection non ordonnée ; voir explication plus loin.
Déroulez !
Pour créer un nouvel ensemble, il faut utiliser le constructeur set().
Pour connaitre la taille d'un set il faut utiliser la propriété size.
Pour ajouter un élément dans un set il faut utiliser la méthode add()
Pour parcourir un "set" on utilise la même syntaxe que pour un "array" : for ... of ...
Notez qu'il existe aussi les méthodes has(), clear(), delete() (comme pour pour le type "map').
La tentative d'ajout d'un deuxième "7" a échoué (la taille du set est toujours 8) mais pas de plantage du script !
La dernière instruction n'est pas prise en compte ; un set est une collection non ordonnée d'éléments (pas d'indice associé à une valeur) ; donc l'accès indexé à un élément n'est pas possible.
Dans le script ci-dessous le joueur obtient une "main" de 5 cartes toutes différentes car cette "main" est stockée dans une
collection de type "set".
La simplicité du programme est dûe à l'emploi d'un objet de type "set" qui interdit les doublons.
Par ailleurs la tentative d'ajout d'un doublon ne provoque un 'plantage' du script.
Déroulez !