Citation:
Que sont les tableaux en JavaScript ?
Dans la plupart des langages de programmation, deux sortes de tableaux sont disponibles :
les tableaux indexés, souvent appelés listes, dont les index correspondent au rang de l'élément dans le tableau (il s'agit donc de valeurs numériques commençant à 0) ;
les tableaux associatifs, souvent appelés maps, dont les index correspondent à des identifiants uniques (comme des chaines de caractères par exemple).
En JavaScript, jusqu'à la norme EcmaScript 5, seuls les tableaux indexés étaient disponibles. Il s'agit de l'objet global Array. Cependant, tous les objets en JavaScript sont des collections de couples clé/valeur et peuvent se voir rajouter ou supprimer des propriétés dynamiquement (y compris les Array, qui sont aussi des objets). Tout objet a ainsi une structure similaire à un tableau associatif, mais il faut bien comprendre que les propriétés et méthodes spécifiques aux objets Array ne sont pas utilisables ici, en particulier la propriété length permettant d'obtenir la taille du tableau (le nombre d'entrées).
A partir de la norme EcmaScript 6, on dispose de vrais tableaux associatifs avec l'objet global Map. Les Maps présentent plusieurs avantages comparés aux simples objets : elles possèdent des méthodes et propriétés spécifiques aux tableaux associatifs (dont la propriété length), et leurs index peuvent être de n'importe quel type contrairement aux objets qui se contentent des chaînes de caractères.
C'est donc la proposition de Kaamo avec quelques détails supplémentaires, et introduisant les Map de ES6 (la FAQ est mise à jour pour ES6).