LenovoId
@LenovoId
svg, css,js

Как отсортировать меню по возрастающей?

Есть меню с пунктами в которых есть data-num и они в разброс:

<ul class="menu">
  <li data-num="1">Первый пункт</li>
  <li data-num="3">Третий пункт</li>
  <li data-num="5">Пятый пункт</li>
  <li data-num="2">Второй пункт</li>
  <li data-num="4">Четвертый пункт</li>
  <li data-num="6">Шестой пункт</li>
</ul>

Хочу отсортировать меню по числовому порядку от 1 до самого наибольшего.
Пробовал это сделать но не знаю на сколько верно я это делал и сортировка не работает.
Как отсортировать меню?
  • Вопрос задан
  • 99 просмотров
Решения вопроса 1
0xD34F
@0xD34F Куратор тега JavaScript
[...document.querySelector('.menu').children]
  .sort((a, b) => a.dataset.num - b.dataset.num)
  .forEach(n => n.parentNode.appendChild(n));

или

const menu = document.querySelector('.menu');
menu.append(...Array
  .from(menu.children)
  .reduce((acc, n) => (acc[n.dataset.num - 1] = n, acc), [])
);
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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