@Lorelin
Student web

Как правильно работать с массивами в DOM?

Добрый вечер! Я только изучаю JS, прошу вам, если хотите подсказать, то делать это понятным языком :).
Я сделал To Do List (впервые), все работает, но меня попросили добавить фильтр задач, если такая задача есть то спрашивать добавить ли похожую и т.д. Как я понял, нужно создавать массив и все такое. Начал - вроде получается но зашел в тупик.
1) Как я думал, arr.filter ищет первый подходящий элемент в массиве, а у меня он ищет и проходит по всем. То есть, если есть дублирующая задача и я ее добавляю, то при следующей такой-же задаче confirm вылезет уже не 1, а 2, 3 и т.д. раз пока все не зависнет...

2
Не совсем допираю как добавить удаление элементов из массива при удалении таска. Головой вроде понимаю, что при удалении нужно получить индекс этого элемента в массиве и удалить, но реализовать как что-то не доходит...

Прошу помощи :)

Мой код:
  • Вопрос задан
  • 73 просмотра
Пригласить эксперта
Ответы на вопрос 1
Aleksandr-JS-Developer
@Aleksandr-JS-Developer
Работает? Не трогай.
Если ToDo list примитивный (в массиве todoArr хранится только одна строка на один todoItem), то можно один раз проверить с помощью .indexOf();

Примерно так:

// newTask - массив со строками задач. Типа ['Eat', 'Run', 'Fly']
const isClone = newTask => todoArr.indexOf( newTask  ) !== -1;


А уже в функции добавления нового todoItem:
...

if( isClone( newTask ) ){
  if( confirm( 'В списке уже есть такая задача, всё-равно добавить?' ) ){
    // Добавляем
  }
}

...
Ответ написан
Ваш ответ на вопрос

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

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