我試圖循環訪問「年」數組中的月份數組,因此我可以使用自定義角度過濾器計算每個月的計數。下面,在第一個while while循環中,我創建了我要循環的結構。循環內的循環似乎覆蓋了所有結果並顯示最終結果
while(i < itemYears.length) {
//chuck the null end date. push the year part of the other end dates with months array.
if (itemYears[i].end !== undefined && itemYears[i].end !== null) {
completeByMonth.push({ year: itemYears[i].end.substring(0,4), months: months });
}
i++; //increment
}
結構上述循環創建:
{
year: 2015,
months: [
{ number: '01', text: 'January', count: 0 }
...
...
]
}
在while循環內,同時,我遍歷每個項目的每個月份。
//iterate throught the years
while(j < completeByMonth.length) {
var year = completeByMonth[j], k = 0;
//iterate through the months for year.
while(k < year.months.length) {
year.months[k].count = $filter('endedMonth')(items, year.year, year.months[k].number).length; //filter items on year and month.
console.log(year.year, year.months[k].text, 'count', year.months[k].count);
k++; //increment
}
console.log(year);
j++; //increment
}
console.log('completeByMonth', completeByMonth);
return completeByMonth;
當我運行它console.logs他們輸出每年每個月的正確計數,當最終completeByMonth陣列每年都在印有相同的月計爲數組中的最後一年時除外。
問題: 如何解決這個問題..這個月的覆蓋計數是多少?
任何幫助,即使是一個完全不同的方式,這將不勝感激。
'var year = completeByMonth [j]'似乎是問題 – harishr