Задать вопрос
Mesuti
@Mesuti

Как отсортировать массив в обратном порядке?

Привет!

Элементы массива надо вставить с помощью .after()
Однако, в таком случае элементы встают в обратном порядке.
Возможно ли вывести в обратном порядке?

Или целесообразней изменить метод вставки на .before()?

  • Вопрос задан
  • 176 просмотров
Подписаться 1 Простой 2 комментария
Решения вопроса 3
dollar
@dollar
Делай добро и бросай его в воду.
Можно просто через цикл с обращением по индексам в обратном порядке.
for (let i = arrayWords.length-1; i >= 0; i--) {
  let n = arrayWords[i];
  //..............
}

Кстати, а почему вы в такой ситуации использовали map вместо forEach?
Ответ написан
twobomb
@twobomb
var arrayWords = ['a','b','c','d','f'];

arrayWords.reverse().map(n => {
  let p = document.createElement('p');
  p.innerHTML = n;
  document.querySelector('.listing').after(p);
})
Ответ написан
Комментировать
0xD34F
@0xD34F Куратор тега JavaScript
Ничего сортировать не надо. И обратный порядок не нужен. Вставляем сразу всё:

document.querySelector('.listing').after(...arrayWords.map(n => {
  const p = document.createElement('p');
  p.innerHTML = n;
  return p;
}));

// или

document.querySelector('.listing').insertAdjacentHTML(
  'afterend',
  arrayWords.map(n => `<p>${n}</p>`).join('')
);

А если не сразу всё, то всё равно обратная сортировка не нужна:

arrayWords.reduce((prev, n) => (
  prev.after(document.createElement('p')),
  prev.nextSibling.innerHTML = n,
  prev.nextSibling
), document.querySelector('.listing'));
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы