if (data) { ... длинная простыня кода }
, при отсутствии else
лучше заменить на:if (! data) return;
...тот же код, на уровень левее
if()
и тем более внутри цикла for()
tasks.push(data); // тут вставили очередной элемент
let task_index = tasks.length - 1; // узнаем его индекс по длине массива, так как он в текущей ситуации последний
// несколько строк спустя
b1.addEventListener("click",
(function(inner_task_index) // функция-обертка для изоляции контекста, сюда передается значение task_index, я специально выделил его другим именем inner_task_index, чтобы видеть контекст функции-обертки
{
// обертка возвращает функцию-обработчик события для addEventListener
return function delFromLocalSt() {
task.removeChild(li);
let array = JSON.parse(localStorage.getItem('task'));
array.splice(inner_task_index, 1); // удаляем элемент по известному индексу используя механизм замыкания, используя контекст функции обертки
localStorage.setItem('task', JSON.stringify(array));
}
})(task_index) // вызываем хитрую обертку, чтобы обеспечить изоляцию переменной от контекста функции createEl
);
b1.addEventListener('click', () => {
const tasks = [
{text: "Заварить кофе", isDone: false},
{text: "Пожарить яичницу", isDone: false},
{text: "продрать глаза", isDone: true},
];
Сохранять в LS сериализованный в JSON этот массив:const itemKey = 'tasks';
localStorage.setItem(itemKey, JSON.stringify(tasks));
Для андроида вот так -webkit-tap-highlight-color: rgba(0,0,0,0); -webkit-tap-highlight-color: transparent; /* For some Androids */