Вы можете использовать метод removeChild
для удаления элемента из вашей DOM, этот способ предотвратит повторную визуализацию (с помощью метода create ) каждый раз, когда вы удаляете элемент из массива. Таким образом, ваш код потребует некоторых изменений, первое из них - иметь идентификатор для каждого элемента вашего массива:
for(let person of array){
app.innerHTML +=
`<div class="item" id="${person.name}"><span class="erase">☓</span>${person.name}</div>`;
}
После использования имени «человека» в качестве идентификатора (я рекомендую вам иметь реальный идентификатор, например число, но в этом примере имя нам поможет), вы можете удалить только этот узел из DOM:
const elementToRemove = document.getElementById(item.parentElement.id);
elementToRemove.parentNode.removeChild(elementToRemove);
Для улучшения вы можете проверить, существует ли узел, и в противном случае вы можете выдать ошибку на свою консоль:
const elementToRemove = document.getElementById(item.parentElement.id);
if (!elementToRemove) throw new Error(`Element ${item.parentElement.id} not found!`)
elementToRemove.parentNode.removeChild(elementToRemove)
Я рекомендую вам прочитать раздел Node на MDN , это может быть полезно для добавления других элементов в список, отредактируйте некоторые элементы и многое другое. :)