2016-02-10 4 views
1

У меня есть вещи, которые я, желающих разобраться, мои пункты вычислили свойства на модели, которые включают в себя winning, bidding, closed и watchingСортировка свойств по приоритету

каждое из этих свойств является истинным или ложным

Я хочу сортировать элементы так, чтобы все выигрышные предметы были первыми, затем все предметы назначения, затем все наблюдаемые предметы, затем все закрытые элементы.

Как я могу достичь этого? Нужно ли делать все это в одной функции сортировки или я могу указать несколько функций для сортировки?

Я попытался это для победы, но я не уверен, куда идти отсюда

sortedItems: Ember.computed.sort('filteredItems',function(a,b){ 
    if(a.get('winning') == true && a.get('winning') != b.get('winning')){ 
    return -1; 
    } 
    if(a.get('winning') == b.get('winning')){ 
    return 0; 
    } 
    if(a.get('winning') == false && a.get('winning') != b.get('winning')){ 
    return 1; 
    } 
}), 
+0

пожалуйста, покажите нам код –

+0

ли я серьезно должен указать вам на [помощь], чтобы прочитать, что и как здесь спросить? СОВЕТ: Показать усилия и пример – mplungjan

+0

добавил код, чтобы показать, что я уже пробовал – Jordan

ответ

0
consider winning = 0, bidding = 1, watching = 2, closed = 3 

    var arrayOfBids = [a, b, c, d, e, f]; 

    arrayOfBids.sort(function(bid1, bid2) { 

     return getBidStatusVal(bid1.status) - getBidStatusVal(bid2.status); 

     function getBidStatusVal(bidStatus) { 
      switch(bidStatus) { 
      case "winning": return 0; 
      case "bidding": return 1; 
      case "watching": return 2; 
      case "closed": return 3; 
      default: return 4; 
      } 
     } 
    }); 
1

Я предлагаю использовать функцию сортировки, как это. Он сортирует, группируя статус ставки.

function (a, b) { 
    var status = { winning: 1, bidding: 2, closed: 3, watching: 4 }; 
    return status[a.bidStatus] - status[b.bidStatus]; 
} 
Смежные вопросы