На хабр нашел такую функцию сортировки массива объектов
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