我有一个我目前无法找到的讨厌的小虫子,所以非常感谢任何帮助。似乎idx增量不按顺序。问题是插入的项目中的数据是关闭的。当数据不支持时,我得到两个月的5行。
第二个月5应该是第6个月。在chartData数组中,它以第5个月结束,在dataSet2数组中以第6个月开始。我的代码中有些东西正在冲洗它。
正确的项目 { MonthNum:5, 月:'5-2015', ARB:18 }
不正确的项目 { MonthNum:5, 月:'5-2015', ARB:3 }
应该是 { MonthNum:6, 月:'6-2015', ARB:3 }
代码片段
if(dataSet2.data.length >0) {
var idx= 0;
var moreToProcess = true;
var totalForMonth = 0;
var firstMonth = dataSet2.data[0].theDate.getMonth() + '-' + dataSet2.data[0].theDate.getFullYear();
while(moreToProcess) {
do {
totalForMonth++;
document.write(idx + ' - ' + dataSet2.data[idx].theDate.getMonth() + '-' + dataSet2.data[idx].theDate.getFullYear() + "<br />");
idx++;
if(idx>=dataSet2.data.length) {
break;
};
} while (firstMonth == dataSet2.data[idx].theDate.getMonth() + '-' + dataSet2.data[idx].theDate.getFullYear());
if(idx > dataSet2.data.length){
moreToProcess = false;
} else {
var item = new Object();
item.MonthNum = dataSet2.data[idx-1].theDate.getMonth();
item.Month = firstMonth;
item.ARBs = totalForMonth;
chartData.data.push(item);
//reset variables
totalForMonth = 0;
if(idx >= dataSet2.data.length) {
moreToProcess = false;
} else {
firstMonth = dataSet2.data[idx].theDate.getMonth() + '-' + dataSet2.data[idx].theDate.getFullYear();
};
};
};
alert("Done");
};
我创造了一个“工作”example here
更新:Example
答案 0 :(得分:0)
似乎getMonth返回一个零索引值,这就是为什么它被1.DOH关闭了!
2015年6月13日的日期返回5作为Jan = 0,Feb - 1等的月份。这意味着June将返回5,就javaScript而言,这在技术上是正确的,但不是出于我的目的。简单的回答是只需将1添加到getMonth(),这样我就得到了我期待的值。