我偶然發現自己在這個位置,我相信有一個更好的方式來做到這一點比我目前。更好的方法來編碼遞歸如果語句
在這個例子中,我試圖對一組有衝突項目的時間進行排序。我需要知道什麼時候是高優先級的,不能移動的,與低優先級的,可以移動的。 但我很確定這段代碼效率很低。
var holdLowPriorities = [];
for (conflict = 0; conflict < sortedTimes.length - 1; conflict++) {
var firstConflictTimeStart = sortedTimes[conflict][0];
var firstConflictTimeEnd = sortedTimes[conflict][1];
var secondConflictTimeStart = sortedTimes[conflict + 1][0];
var secondConflictTimeEnd = sortedTimes[conflict + 1][1];
if (firstConflictTimeStart < secondConflictTimeEnd &&
firstConflictTimeEnd > secondConflictTimeStart) {
// are either of the conflicts a high priority
var firstContactPriority = sortedTimes[conflict][2];
var secondContactPriority = ortedTimes[conflict + 1][2]
if (firstConflictPriority == 2) {
//this is high priority, can't move
}
if (secondConflictPriority == 2) {
// this is also a priority, but has to move
}
// are either of the conflicts a low priority?
if (firstConflictPriority == 0) {
// this is a low priority so I can adjust the time
} else if (secondConflictPriority == 0) {
// this is a low priority so I can adjust the time
}
}
}
不幸的是,我甚至不知道怎麼稱呼這種類型的問題,因此不知道要尋找什麼,但我敢肯定的答案不是太複雜(我希望不是)。
你可以使代碼更易於通過使用一些中間變量與準確的名稱 – 2010-12-18 01:47:07
什麼是'sortedTimes'結構閱讀(很可能更有效)? – 2010-12-18 01:48:05
哇,這是一個難以維護的代碼塊...... 10/10想要改進它......你一定要聽從米奇小麥的建議 - 一旦你有中間變量,編輯你的Q與更新碼。 – Basic 2010-12-18 01:51:51