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

Почему в TODO удаляется сразу по 2 элемента?

Решил написать ToDo List. Возникает ошибка при удалении элементов из массива, отсюда программа, как мне кажется, криво перерисовывает элементы задачи. Получается, что удаляет то два элемента за одно нажатие, то дублирует добавление... Что не так?

ссылка на файлы

https://github.com/Ykalinovskyi/JavaScript.git
  • Вопрос задан
  • 113 просмотров
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Skillbox
    JavaScript
    3 месяца
    Далее
  • Яндекс Практикум
    Фронтенд-разработчик расширенный
    13 месяцев
    Далее
  • Академия Eduson
    Fullstack-разработчик на JavaScript
    11 месяцев
    Далее
Решения вопроса 1
sergiks
@sergiks Куратор тега JavaScript
♬♬
в рендере во время обхода массива при каком-то текущем значении index
удаляете этот же элемент в deleteEl()
После удаления, выходит, index уже указывает на следующий элемент и не отрисовывает его.

TL&DR не изменять массив изнутри forEach()

Ну и вообще, render() не место для изменения данных. Пусть каждый занимается своим делом: render() только рисует что есть. delete() только удаляет элемент из массива (и вызывает render())
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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