Инициализация массива javascript
Есть ли другой (более красивый) способ инициализировать этот массив Javascript?
var counter = [];
counter["A"] = 0;
counter["B"] = 0;
counter["C"] = 0;
counter["D"] = 0;
counter["E"] = 0;
counter["F"] = 0;
counter["G"] = 0;
Ответы
Ответ 1
а. Это не работает или, по крайней мере, не так, как вы надеялись. Вы инициализировали массив, когда то, что вы, скорее всего, ищете, является хешем. counter
все равно вернет []
и будет иметь длину 0
, если вы не измените первую строку на counter = {};
. Свойства будут существовать, но это путаное использование []
для хранения пар ключ-значение.
В:
var counter = {A: 0, B: 0, C: 0, D: 0, E: 0, F: 0, G: 0};
Ответ 2
Используйте литерал объекта вместо массива, например:
var counter = {A:0,B:0,C:0}; // and so on
Затем доступ к свойствам с точечной нотацией:
counter.A; // 0
... или квадратная скобка:
counter['A']; // 0
В основном вы будете использовать массивы для числовых свойств, хотя можно добавлять нечисловые свойства так, как вы были.
Ответ 3
var counter={A:0,B:0,C:0,D:0,E:0,F:0,G:0};
Ответ 4
Было бы разумнее использовать для этого объект:
var counter = {
A: 0,
B: 0,
C: 0,
D: 0,
E: 0,
F: 0,
G: 0
};