Les tableaux JavaScript

Définition

Un tableau est une variable permettant de regrouper plusieurs données.

Celles-ci peuvent avoir un type de base (numeric, string, boolean) ou être un tableau ou un objet.

Un tableau quelque soit le langage, fonctionne avec un index. Prenons ce tableau basique

0 1 2 3 4
Citron Banane Cerise Framboise Mirtille

Nous voulons acceder à la 3ième valeur (Cerise) donc l'index 2. Pour ce faire on va prendre la variable tab et indiquer avec les crochets [] l'index voulu

  • console.log(tab[2]);

Comment créer un tableau

On a vu comment utiliser basiquement un tableau mais on a pas encore vue comment on créé ce tableau.

Il y a deux façon de s'y prendre

  • La notation "clasique"
  • La notation "JSON"

La notation classique

En JavaScript comme dans beaucoup de langage, les tableaux sont des objets. Il s'agit donc de "créer une nouvelle instance de tableau"

  • var tab=new Array();

La notation JSON

C'est une façon de créer des objets en JavaScript apparu au début des années 2000. Ce format été censé concurencer le XML.

Voila pour l'histoire, maintenant pour les tableaux on va se contenter d'indiquer que la variable a un "format de tableau"

  • var tab=[];

On a vue comment créer un tableau voyons maintenant comment lui entrer des valeurs

La aussi il y a 2 façons de faire.

  • Entrer les valeurs des la création
  • Les entrer aprés avoir créer le tableau
  • var t=new Array("Citron","Banane","Cerise","Framboise","Mirtille");
  • var t2=["Citron","Banane","Cerise","Framboise","Mirtille"];
  • var t=new Array();
  • t[0]="Citron";
  • t[1]="Banane";
  • t[2]="Cerise";
  • t[3]="Framboise";
  • t[4]="Mirtille";

Comment mettre à jour un tableau

Mon tableau a 5 fruits. J'aimerai en ajouter un 6ieme des raisins

Encore une fois il y a deux façon de s'y prendre,

  • Soit ajouter l'information à la fin du tableau
  • Soit l'ajouter à un index précis

Pour ajouter une information à la fin d'un tableau on utilise la méthode .push()

  • var fruits=["Citron","Banane","Cerise","Framboise","Mirtille"];
  • fruits.push("Raisins");

On peut aussi ajouter l'information via son index

  • var fruits=["Citron","Banane","Cerise","Framboise","Mirtille"];
  • fruits[5]="Raisins"

Attention imaginons que au lieu d'entrer l'information à l'index 5 on l'ajoute à l'index 10

  • var fruits=["Citron","Banane","Cerise","Framboise","Mirtille"];
  • fruits[10]="Raisins"
  • console.dir(fruits)
  • Array(11) [ "Citron", "Banane", "Cerise", "Framboise", "Mirtille", <5 empty slots>, … ]

JavaScript créé donc un tableau de longueur 11, et laisse 5 slots (emplacements) vide et ajoute les raisins

Parcourir le tableau

Youpi j'ai un chouette tableau de fruits mais maintenant il faudrait que je le lise pour voir ce qu'il y a dedans.

Pour ce faire on va utiliser notre bonne vielle boucle algorithmique. Pour l'exemple on va faire simple on va utiliser le pour

  • for(let i=0;i<fruits.length;i++){
    • console.log(fruits[i]);
  • }
  • Citron
  • Banane
  • Cerise
  • Framboise
  • Mirtille

Il est possible de parcourir un tableau avec la méthode forEach que l'on verra plus tard

Variable de référence

Soit le code suivant :

  • var tab=[];
  • var t2=tab;
  • tab.push(5);
  • console.log(t2.length); //va afficher 1

Pourquoi y t-il une donnée dans t2 alors que l'on l'a ajouter dans tab ?
Pour répondre à cette question on va toucher à un point important en developpement général.

Les pointeurs

Voila en fait ce qui c'est passer avec ce code

les pointeurs

tab et t2 pointent vers la même adresse mémoire qui elle même pointe vers le tableau. Donc si je modifie tab je modifie aussi t2. Donc voila une notion importante : les variables de tableau et d'objet ne sont pas vraiment des variables mais des références

Fonctions de base

Fonctions avancées

Quelque soit le langage que vous utilisez, il est toujours préférable d'utiliser les fonctions ou procédure internes des tableaux. En effet, celles-ci sont optmisées et permettront d'avoir un code plus performant.

Les fonctions que l'on va voir on toute un point commun elle passe une fonction en callBack

forEach

J'en ai parlé plus haut, on a parcouru le tableau de fruits avec une boucle algorithmique. Le forEach permet de parcourir intégralement le tableau

Mais voila ce qui se passe si j'éxecute ce code

  • var fruits=["Citron","Banane","Cerise","Framboise","Mirtille","raisins","pastèque",
    "mangue","figues","kiwis","pommes","poires","abricots"];
  • for(let i=0;i<fruits.length;i++){
    • console.log(fruits[i]);
  • }
  • var fruits=["Citron","Banane","Cerise","Framboise","Mirtille","raisins","pastèque",
    "mangue","figues","kiwis","pommes","poires","abricots"];
  • fruits.forEach((el)=>{
    • console.log(el);
  • })