@uroot

Почему дублируется вывод массива?

Пытаюсь постигнуть JS. Набросал очень простенький todo list, но почему-то при добавлении в localStorage с последующим выводом в HTML, массив значений дублируется, но при этом добавляется/выводится и новое значение. Если обновить страницу, то повторы исчезнут. В localStorage дублей нет, т.е. это ошибка при выводе.
Код:
Не подскажите что не так? А то чувство, что я в корне делаю что-то не так не покидает меня.
  • Вопрос задан
  • 533 просмотра
Решения вопроса 2
0xD34F
@0xD34F Куратор тега JavaScript
Потому что вы дополняете уже существующую разметку, вместо того, чтобы перезаписывать её полностью - несмотря на то, что при выводе списка вы каждый раз обрабатываете все элементы.

Замените

todoList.forEach(function(element) {
  document.getElementById('out').innerHTML += '<p>'+element+'</p>';
});

на

document.getElementById('out').innerHTML = todoList.map(n => `<p>${n}</p>`).join('');
Ответ написан
@LemonFox
stateless mind
document.getElementById('out').innerHTML = '';

Очищайте контейнер в начале ф-ции out, либо передавайте в функцию вывода только новые элементы.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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