Отличное решение!
Я использовал его и адаптировал для своих нужд. Я использую каналы JSON.
Важно: первое условие - убедиться, что все события отсортированы по дате начала.
Тогда, если вы хотите отсортировать по названию:
function segCmp(a, b) {
var tryCmp = (b.msLength - a.msLength) * 100 + (a.event.start - b.event.start);
if (tryCmp == 0) {
return (a.event.title.toLowerCase() >= b.event.title.toLowerCase()) ? 1: 0;
}
return tryCmp;
}
Я тоже использовал это по-другому.
Я добавил пользовательский атрибут для каждого события фида JSON под названием «colOrder» (это может быть что угодно) и дал ему целочисленные значения (1,2,3 ...). 1 для первого события, которое я хочу увидеть, 2 для второго ...
Затем я настроил функцию для использования атрибута colOrder для сортировки событий.
function segCmp(a, b) {
var tryCmp = (b.msLength - a.msLength) * 100 + (a.event.start - b.event.start);
if (tryCmp == 0) {
if (!isNaN(a.event.colOrder) && !isNaN(b.event.colOrder))
return (a.event.colOrder - b.event.colOrder);
}
return tryCmp;
}