Initialisation d'un javascript

Existe-t-il un autre moyen (plus beau) d'initialiser ce système Javascript?

var counter = []; counter["A"] = 0; counter["B"] = 0; counter["C"] = 0; counter["D"] = 0; counter["E"] = 0; counter["F"] = 0; counter["G"] = 0; 

R. Cela ne fonctionne pas, ou du moins pas comme vous l'espériez. Vous avez initialisé un tableau lorsque ce que vous cherchez le plus tôt est un hash. counter renverra toujours [] et aura une longueur de 0 moins que vous ne modifiez la première ligne à counter = {}; . Les propriétés existent, mais c'est une utilisation confuse de [] pour stocker des paires clé-valeur.

B:

 var counter = {A: 0, B: 0, C: 0, D: 0, E: 0, F: 0, G: 0}; 

Utilisez un objet littéral au lieu d'un tableau, comme ceci:

 var counter = {A:0,B:0,C:0}; // and so on 

Ensuite, accédez aux propriétés avec une notation par points:

 counter.A; // 0 

… ou notation entre crochets

 counter['A']; // 0 

Vous utiliserez principalement Arrays pour les propriétés numériques, mais il est possible d'ajouter des propriétés non numériques comme vous l'étiez.

 var counter={A:0,B:0,C:0,D:0,E:0,F:0,G:0}; 

Il serait plus logique d'utiliser un objet pour ceci:

  var counter = { A: 0, B: 0, C: 0, D: 0, E: 0, F: 0, G: 0 };