Как отсортировать элементы внутри массива?

Подскажите пожалуйста, как отсортировать и вывести числа внутри блока result по порядку. Не совсем понимаю как работать с объектом NodeList. Также не могу понять, как обратиться к значению внутри тега div. Заранее благодарю!

  • Вопрос задан
  • 98 просмотров
Решения вопроса 2
sergiks
@sergiks Куратор тега JavaScript
♬♬
Из NodeList можно сделать массив со всеми его методами: const arr = Array.from(myNodeList);
Значение внутри элемента div: const text = div.textContent;

function func1() {
  // сделать массив с этими дивами
  const divs = Array.from(document.querySelectorAll(".data > div"));

  // отсортировать, интерпретируя текст как числа
  divs.sort((a, b) => +b.textContent - +a.textContent);

  // куда их всех переставлять
  const result = document.querySelector(".result");

  // пока в массиве что-то есть, берём последний и вставляем в result
  while(divs.length) {
    result.appendChild(divs.pop());
  }
}
func1();
Ответ написан
0xD34F
@0xD34F Куратор тега JavaScript
const sorted = (data, key) => Array
  .from(data, n => [ n, key(n) ])
  .sort((a, b) => a[1] - b[1])
  .map(n => n[0]);


document.querySelector('.result').append(...sorted(
  document.querySelector('.data').cloneNode(true).children,
  n => +n.innerText
));
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы
21 нояб. 2024, в 23:30
300000 руб./за проект
21 нояб. 2024, в 22:21
3000 руб./в час
21 нояб. 2024, в 21:42
100000 руб./за проект