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

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

  • Вопрос задан
  • 88 просмотров
Решения вопроса 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
document.querySelector('.result').append(...Array
  .from(document.querySelector('.data').cloneNode(true).children, n => [ n, +n.innerText ])
  .sort((a, b) => a[1] - b[1])
  .map(n => n[0])
);
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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