我想在這裏實現的是一個結構化數據集,用於從名爲"timeTree"
的數組中提取時間軸。訪問數組中新推入的對象的上下文
首先,我正在迭代有結束日期的目標。基於這個日期我想將分類到正確的年和月。正在使用
角進行渲染,我曾與渲染這種結構沒有問題,同樣不能說有關創建它...
我的問題是如何添加一個目標到一年,這是還沒有在陣列中?
scope.timeTree = [];
_.each(goals, function(goal) {
if (goal.stateId != "FINISHED") {
var goalYear = new Date(goal.plannedEnd).getFullYear();
var goalMonth = new Date(goal.plannedEnd).getMonth();
if (scope.timeTree.length > 0) {
_.each(scope.timeTree, function(year) {
if (year.year === goalYear) {
_.each(year.months, function(month) {
if (month.month === goalMonth) {
month.goals.push(goal);
} else {
year.months.push({
month: goalMonth,
goals: []
});
_.each(month.goals, function(goal) {
})
}
})
} else {
scope.timeTree.push({
year: goalYear,
months: []
});
_.each(year.months, function(month) {
if (month.month === goalMonth) {
month.goals.push(goal);
} else {
}
});
}
})
} else {
// init structure
scope.timeTree.push({
year: goalYear,
months: []
});
_.each(scope.timeTree, function(year) {
year.months.push({
month: goalMonth,
goals: []
});
_.each(year.months, function(month) {
month.goals.push(goal);
});
});
}
}
}
}
在上面的代碼,特別是,當year.year不等於goalYear,我根本不知道該怎麼辦......我在今年的情況下(物體年份信息,以及那一年的月份,這些月份都有目標)但是我不希望在不同年度的情況下重複數月。我希望在我剛推動的一年中將目標推入月份領域。基本上,主要問題是if語句的負分支,當我必須將新對象推入數組中時,同時將目標推入剛剛創建(推送)的數組中。也許這不是一個好方法,所以我打開更好的解決方案。另一方面,如果你知道如何使這種確切的方法奏效,這將是很好的。