0
filterItemsMonth(items, start, end, arr){
console.log(arr);
if(!start.isAfter(end, "day")) {
console.log(arr);
arr.push(this.filterItemsWeek(items, start, start.add(1, "week")), [])
start.add(1, "week");
this.filterItemsMonth(items, start, end, arr);
}
return arr;
}
這是調用這個函數:
filterItemsWeek(items, start, end, arr){
arr.push((items.filter((item) => {
return start.isSame(moment(item.date_started), "day");
})).sort((a, b) => {
return parseInt(a.time_started) - parseInt(b.time_started);
}));
if(!start.isSame(end, "day")) {
start.add(1, "day");
this.filterItemsWeek(items, start, end, arr);
}
return arr;
}
我的格式對不起,希望該代碼足夠清晰。
以下函數filterItemsWeek正常工作。它需要一系列對象,並根據它們的date屬性對它們進行排序,只取對象來自給定的一週,然後將其放入與一週的某一天對應的子陣列中。
我想複製相同的功能,但整個月,我認爲會工作,但我有麻煩。理想情況下,我在一個月內每週運行一次底部遞歸函數,所以我有一個週數組,每個數組包含一週內當天發生的事件數組。
出於某種原因,我收到控制檯錯誤「無法讀取未定義的屬性.push」。 console.log語句顯示正確的值(一個空數組[],該函數被傳遞),但由於某種原因,我的函數認爲空數組是未定義的。
我正在使用React JS,但我不認爲這是一個React問題。 filterItemsWeek函數工作得很好,並且這兩個函數都綁定到我的組件構造函數。任何幫助表示讚賞,這對我來說是一個真正的愚蠢!
你提出的聲明缺少一個右括號。 – Titus
謝謝,我已修復它。 –
聖牛不敢相信我錯過了! –