Показать сообщение отдельно
  #1 (permalink)  
Старый 01.04.2013, 23:35
Новичок на форуме
Отправить личное сообщение для Ilja_Lv Посмотреть профиль Найти все сообщения от Ilja_Lv
 
Регистрация: 01.04.2013
Сообщений: 3

Непонятный момент в примере функции сравнения
Добрый день!

На stackoverflow нашёл пример функции, которая передаётся в .sort():
var sort_by = function(field, reverse, primer){
    var key = primer ? function (x) { return primer(x[field]); } : function (x) { return x[field]; };

    return function (a,b) {
        var A = key(a), B = key(b);
        return ((A < B) ? -1 : (A > B) ? +1 : 0) * [-1,1][+!!reverse];                  
    };
};


Применение:
// Sort by price high to low
homes.sort(sort_by('price', true, parseInt));

// Sort by city, case-insensitive, A-Z
homes.sort(sort_by('city', false, function(a){return a.toUpperCase()}));



Помогите, пожалуйста, понять, что означает вот это выражение:
* [-1,1][+!!reverse];

Спасибо!

Последний раз редактировалось Ilja_Lv, 01.04.2013 в 23:36. Причина: Хочу получать уведомления на email.
Ответить с цитированием