下面是一个从循环中的数组中提取月份的函数。当找到一个月时,该月在对象CRIMES_PER_MONTH中迭代1。比switch语句更好的解决方案
这可行,但这是一个相当丑陋的解决方案,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;
}
...但是这ONY适用于数组,我真想把这个作为一个对象。
有没有办法将转换这个数组完成后,数组到一个对象?我真的需要把它作为一个对象。 – holyredbeard 2013-02-18 09:40:12
当然可以。只需映射对象上的值,然后使用索引到名称的转换来获取属性名称。 – Bergi 2013-02-18 09:44:53
谢谢!工作很好。 – holyredbeard 2013-02-18 09:59:27