Vous pouvez me contacter via Facebook pour questions & suggestions :
Page Facebook relative à mon site
En JavaScript on désigne par "array" une variable pouvant contenir une liste de données simples.
On parle aussi de "tableaux indicés". Un tableau indicé peut être à une ou plusieurs dimensions.
Depuis la dernière version de JavaScript, on désigne par "map" une liste de paires clé-valeur.
On parle aussi de "tableaux associatifs" et de "dictionnaires dans le jargon Python.
Le concept de "set" (liste sans doublons possibles) bien connu des développeurs Python est désormais introduit par ECMAScript 6 - dernière version de JS.
Dans un tableau indicé chaque valeur est repérée par son rang (ou indice).
Attention la première valeur a le rang (ou indice) zéro !
Nous allons nous familiariser avec la syntaxe en produisant des commandes dans la console.
Consigne : saisir les lignes précédées de ">".
Les autres lignes sont les réponses de la console.
Pour créer un tableau il faut que les différents éléments soient séparés par des virgules et le tout encadré par des parenthèses.
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
Pour afficher le contenu du tableau il suffit de saisir son nom.
Il existe d'autres méthodes que l'on peut appliquer à un tableau.
Nous allons voir désormais comment parcourir dans le cadre d'un programme.
Ce tableau a initialement 4 items ayant respectivement les rangs 0 à 3.
Puis j'ajoute un élément en précisant son indice ... 6 !
Il s'agit alors d'un tableau avec 7 éléments dont deux non définis.
Oui c'est possible, mais ce n'est pas conseillé.
La structure for ... in permet de parcourir un tableau avec une syntaxe simplifiée. Autre avantage : les "trous" dans la liste n'apparaissent pas !
Un tableau indicé est un objet de type ARRAY. Donc pour créer un tableau je peux utiliser la syntaxe POO : var nomTableau = new Array()
Ce script a aussi pour objet de vous familiariser avec d'autres méthodes d'un objet array qui n'ont pas encore été abordées.
Dans ce script : révision sur des méthodes de Array déjà présentées plus avant : push(), unshift(), sort(), reverse(). Mais il y a aussi des nouveautés.
Remarque : il existe d'autres méthodes de l'objet Array : concat(), slice(),pop(), shift() ...
Rien n'interdit de créer des tableaux indicés à deux dimensions.
Théme: l'ULCO (Université de La Côte d'Opale) est une université multipolaire : quatre sites. Des personnels doivent faire des déplacements entre ces différents pôles. Afin de les indemniser, il est important de connaitre les distance entre les pôles.
**** | calais | boulogne | dunkerque | saint omer |
calais | 0 | 34 | 46 | 44 |
boulogne | 34 | 0 | 76 | 54 |
dunkerque | 46 | 76 | 0 | 47 |
saint omer | 44 | 54 | 47 | 0 |
Il s'agit d'un tableau à double entrée (plusieurs colonnes et plusieurs lignes).
Le script pour créer ce tableau indicé à deux dimensions et le manipuler est le suivant.
En fait un tableau à deux dimensions et un tableau indicé dont chaque élément est lui-même un tableau indicé.
Dans l'exemple le tableau principal comprend cinq sous-tableaux. Chaque sous-tableau comprend 5 éléments.
Des instructions méritent une explication :
...distance[1][2] : pour récupérer un élément il faut préciser ses deux indices : rang colonne, rang ligne.
L'utilisation de tableaux peut simplifier considérablement un programme.
Thématique : En fonction du rang du mois (entier compris entre 1 et 12) le programme doit afficher le nom du mois correspondant.
Ainsi si vous saisissez l'entier 5, le programme doit retourner "mai", si vous saisissez 11, il affiche "novembre".
Donc un code relativement lourd.
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.
Le script est beaucoup plus succinct grâce à l'emploi d'un tableau.
Les tableaux avec clés (appelés aussi tableaux "clé-valeur", tableaux associatifs en PHP, dictionnaires en Python) ça existe enfin
dans JavaScript grâce à la dernière version stable : EcmaScript6.
Auparavant on pouvait simuler des tableaux associatifs avec des objets de type string mais c'était de la "bidouille".
Dans le jargon JS on parle de "map". Dans un "map" on associe à chaque valeur non pas un indice mais une clé (une chaine).
A la différence de l'indice, la clé doit toujours être saisie !
Pour créer un tableau associatif il faut utiliser le constructeur Map.
Exemple de script :
Pour créer un tableau associatif il faut utiliser le constructeur Map().
La propriété size (et non pas length) indique le nombre de paires "clé-valeur" dans le tableau.
Pour parcourir un tableau associatif il faut utiliser la structure for (let ... of nomMap.méthode())
Si vous connaissez le langage Python, vous savez qu'il existe une structure de données qui s'appelle "set" ("ensemble" en français).
Dans une séquence de type "set" il ne peut y avoir de doublons.
La dernière version de JavaScript propose désormais ce type de données.
Pour créer un nouvel ensemble, il faut utiliser le constructeur Set().
La taille de l'ensemble est de 8 (l'ajout de 7 n'ayant pas été pris en compte) ;
cependant il n'y a pas plantage du programme.
Pour parcourir un "set" on utilise la même syntaxe que pour un "map".
Notez qu'il existe aussi les méthodes has(),clear(), delete() (comme pour pour le type "map'). Par contre l'ajout d'un item se fait
avec la méthode add() (et non pas set()) et on comprend pourquoi ...
La tentative d'ajout d'un 8 échoue puisque cette valeur existe déjà. La taille de l'ensemble fait désormais 13.
Il ne peut jamais y avoir de doublons dans un ensemble.
Dans le script ci-dessous le joueur obtient une "main" de 5 cartes toutes différentes car cette "main" est stockée dans un tableau de type "set".
La simplicité du programme est dû à l'emploi d'un objet de type "set" qui interdit les doublons.