是否有另一种(更漂亮的)方法来初始化这个Javascript数组?
var counter = [];
counter["A"] = 0;
counter["B"] = 0;
counter["C"] = 0;
counter["D"] = 0;
counter["E"] = 0;
counter["F"] = 0;
counter["G"] = 0;
答案 0 :(得分:17)
一个。这不起作用,或者至少不是你希望它的方式。当您最有可能寻找的是哈希时,您初始化了一个数组。除非您将第一行更改为counter
,否则[]
仍会返回0
并且长度为counter = {};
。这些属性将存在,但使用[]
来存储键值对是一件令人困惑的事情。
B:
var counter = {A: 0, B: 0, C: 0, D: 0, E: 0, F: 0, G: 0};
答案 1 :(得分:13)
使用对象文字而不是数组,如下所示:
var counter = {A:0,B:0,C:0}; // and so on
然后使用点表示法访问属性:
counter.A; // 0
...或方括号表示法:
counter['A']; // 0
您主要将数组用于数组属性,但可以按原样添加非数字属性。
答案 2 :(得分:1)
var counter={A:0,B:0,C:0,D:0,E:0,F:0,G:0};
答案 3 :(得分:1)
使用对象更有意义:
var counter = {
A: 0,
B: 0,
C: 0,
D: 0,
E: 0,
F: 0,
G: 0
};
答案 4 :(得分:0)
如果您真的想要一个由零组成的数组,那么Array(5).fill(0)
可以解决问题。