@3axap_90

Как реализовать сортировку по алфавиту и по числам jquery?

Как реализовать сортировку по алфавиту (прямой и обратный порядок)?
По числам получилось, а по алфавиту нет
Песочница
  • Вопрос задан
  • 382 просмотра
Решения вопроса 2
inkShio
@inkShio
Если по гуглить, то все можно найти

Песочница, на скорую руку
Ответ написан
Комментировать
0xD34F
@0xD34F Куратор тега JavaScript
Определим функции сортировки, в зависимости от типа:

const sort = {
  str: (a, b) => a.text().localeCompare(b.text()),
  num: (a, b) => parseInt(a.text(), 10) - parseInt(b.text(), 10),
};

Кнопкам добавим data-атрибуты, которые будут указывать имя свойства и тип данных:

<button class="sort" data-field="age" data-type="num">Сортировать по возрасту</button>
<button class="sort" data-field="name" data-type="str">Сортировать по имени</button>

Ну и сортируем:

$('.sort').click(function() {
  const
    $this = $(this),
    data = $this.data(),
    compare = sort[data.type],
    field = `.${data.field}`,
    order = +data.order || 1;

  $('.block')
    .sort((a, b) => order * compare($(field, a), $(field, b)))
    .appendTo('.cont');

  $this.data('order', order * -1);
});

https://jsfiddle.net/8wkn5hz4/
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@RuWeb
Сортировка текста (списка) в алфавитном порядке https://texttools.ru/sort-text
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы