下面是一个从循环中的数组中提取月份的函数。当找到一个月时,该月在对象 CRIMES_PER_MONTH 中迭代 1。
这可行,但它是一个非常丑陋的解决方案,并且 switch 语句变得很长。那么,我可以使用什么来代替 switch 语句呢?
var crimes_per_month = {
january: 0,
february: 0,
mars: 0,
april: 0,
may: 0,
june: 0,
july: 0,
august: 0,
september: 0,
oktober: 0,
november: 0,
december: 0
};
function AddToMonths(month) {
switch(month) {
case 1:
jan += 1;
break;
case 2:
feb += 1;
break;
case 3:
mar += 1;
break;
case 4:
apr += 1;
break;
... and so on...
}
}
for(var i = 0; i < incidents.length; i++) {
month = incidents[i].substring(5, 7);
AddToMonths(parseInt(month));
}
我想最好的办法是直接在循环中访问对象:
for(var i = 0; i < incidents.length; i++) {
month = incidents[i].substring(5, 7);
crimes_per_month[month] += 1;
}
...但这仅适用于数组,我真的想将其保留为对象。