Raconté par Vincent Jugé
sur la base d'un cours créé par Rémi Forax
Un dictionnaire en JavaScript se déclare entre { et }.
Une clé et une valeur sont séparées par
:.
Les couples sont séparés par des virgules.
En JavaScript, les clés sont forcément des string !
L'opération '.' (dot) permet d'obtenir la valeur correspondant à une clé.
Dans le cas où la clé n'existe pas, la valeur est undefined.
Comme pour les tableaux, il est possible d'utiliser les [ ] pour obtenir la valeur correspondant à une clé.
On utilise . si la clé est une string codée en dur (sans guillemets), et [] sinon (clé calculée, stockée dans une variable, ou codée en dur avec des guillemets).
Il est possible de changer la valeur associée à une clé ou d'ajouter un couple clé/valeur.
Le dictionnaire indexe les valeurs par leur clé : il ne peut y avoir qu'une seule valeur pour une clé donnée.
En JavaScript, les dictionnaires sont appelés
« object » et non « dictionary ».
L'affichage par défaut (toString()) n'est pas intéressant :
on utilise JSON.stringify() à la place.
JSON = JavaScript Object Notation
Comme pour les tableaux, on peut destructurer les valeurs d'un objet avec la syntaxe let {key1, key2, …} = object.
Un objet n'est pas considéré comme un type primitif,
== compare les addresses en mémoire.
Il faut comparer chaque champ !
Les objets sont tous mutables :
attention à l'usage de const !
L'usage de const interdit de réaffecter une variable,
mais autorise la modification de ses champs !
Un objet permet de regrouper des propriétés ayant trait à un même concept, ce qui permet de structurer le code.
Si on veut manipuler plusieurs objets,
on les regroupe dans un tableau.
La fonction Object.keys renvoie un tableau des propriétés (clés) d'un objet.
On peut pas parcourir un objet directement : il faut parcourir ses propriétés, puis aller chercher la valeur de chaque propriété.
Il existe un mot-clé spécial pour parcourir les propriétés des objets : for(variable in obj), comme en Python.
Cette syntaxe est équivalente au code qui utilise Object.keys().