0
我想通過兩個屬性對一個集合進行排序,其中一個是「complete」,它返回true或false,另一個是id,除非我需要一個屬性以降序排列。有沒有辦法做到這一點?主幹綜合排序問題
我想通過兩個屬性對一個集合進行排序,其中一個是「complete」,它返回true或false,另一個是id,除非我需要一個屬性以降序排列。有沒有辦法做到這一點?主幹綜合排序問題
是的,你可以做那樣的事情。集合的comparator
需要一個參數或兩個參數函數:
你會想使用這兩個參數的形式,這樣的事情:
comparator: function(a, b) {
var ac = a.get('complete');
var bc = b.get('complete');
if(ac && !bc)
return 1;
if(!ac && bc)
return -1;
var as = a.get('seconds');
var bs = b.get('seconds');
if(as > bs)
return -1;
if(bs < as)
return 1;
return 0;
}
如果你有骨氣的舊版本不理解這兩個參數的comparator
功能,那麼你」我們必須升級或想出一種方法來將complete
和seconds
合併成一個單獨的排序鍵,這將與Underscore's sortBy
正確排序。
不錯。這個例子非常有幫助。再次感謝穆。 – jmk2142