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 };