Как отсортировать массив DOM-элементов в зависимости от значений атрибута вложенных элементов?

У меня есть массив DOM-элементов. В каждом есть 'a href="...value=42"'. Числа после = разные, в разном порядке, могут и не быть. Подскажите как лучше отсортировать массив по числу после =, где value=1, должен быть на первом месте, value=2 - на втором и т.п. Если после value=2 идёт сразу value=10, то этот элемент помещается на третье место. Если value=num нет, то этот элемент помещается в конец массива.
Элементы типа

<div>
    <a href="some_string...value=10">link</a>
</div>
  • Вопрос задан
  • 110 просмотров
Пригласить эксперта
Ответы на вопрос 2
0xD34F
@0xD34F Куратор тега JavaScript
const sorted = arr
  .map(n => ({
    item: n,
    value: +new URLSearchParams(n.querySelector('a').href.split('?').pop()).get('value') || Infinity,
  }))
  .sort((a, b) => a.value - b.value)
  .map(n => n.item);
Ответ написан
sergiks
@sergiks Куратор тега JavaScript
♬♬
Как я понял, сортировать не по отдельному атрибуту, а по числу в конце длинного значения href.

..про Infinity списал у 0xD34F
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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