Показать сообщение отдельно
  #1 (permalink)  
Старый 14.05.2020, 17:32
Аватар для sovsem-nub
Профессор
Отправить личное сообщение для sovsem-nub Посмотреть профиль Найти все сообщения от sovsem-nub
 
Регистрация: 15.10.2014
Сообщений: 255

Помогите стрелочную функцию переделать в нестрелочную
На хабр нашел такую функцию сортировки массива объектов

arrObjects=arrObjects.sort(compare(field, order));

function compare(field, order) {
        return order < 0 ?
   ((a, b) => (a[field] < b[field] && 1) || (a[field] > b[field] && -1) || 0) :
   ((a, b) => (a[field] < b[field] && -1) || (a[field] > b[field] && 1) || 0);
    
};


она может сортировать и текстовые и числовые значения.
единственное, что понял ? - это if а : это else
а функция compare возвращает одну из функций, в зависимости от order

но что значит эта запись

((a, b) => (a[field] < b[field] && 1) || (a[field] > b[field] && -1) || 0)


вообще не понятно (наверное возвращает -1 1 или 0). Если это можно как-то в более простом варианте написать, без стрелочных функций, чтобы хоть что-то понятнее стало.
И где можно посмотреть, что из себя представляет из себя встроенная функция .sort как там происходит перебор a и b

Последний раз редактировалось sovsem-nub, 14.05.2020 в 17:46.
Ответить с цитированием