1
resposta

Como mantive Id e posição no array sempre atualizados

function deletaElemento(tag, id) {
    tag.remove();
    itens.splice(itens.findIndex(elemento => elemento.id === id), 1);

    itens.forEach((elemento) => {
        atualizaId(elemento);
    })

    localStorage.setItem("itens", JSON.stringify(itens));
}

function atualizaId(elemento) {
    if (elemento.id != itens.indexOf(elemento)) {
        document.querySelector("[data-id='" + elemento.id + "']").dataset.id = itens.indexOf(elemento);
        elemento.id = itens.indexOf(elemento);
    }
}

Após a exclusão do item, optei por iterar novamente os elementos do array Itens, atualizando cada ID com base no seu novo index, gravando novamente no localStorage. Precisei atualizar também o Data-id do elemento no html, pois novos ids trariam problema na função atualizaItem. Dessa forma, os itens no localStorage sempre ficarao com ids ordenados a partir do 0.

1 resposta

Oi Jeferson, tudo bem?

Parece que você encontrou uma solução interessante para manter os IDs e a posição no array sempre atualizados após a exclusão de um elemento. Ao iterar novamente os elementos do array itens e atualizar os IDs com base no novo índice, você garante que os itens no localStorage fiquem com IDs ordenados a partir de 0.

Além disso, ao atualizar o data-id do elemento no HTML, você evita problemas na função atualizaItem. Essa abordagem parece ser eficaz para manter a consistência dos dados.

Muito obrigada por contribuir com a comunidade!

Continue explorando o JavaScript na web e buscando soluções criativas para os desafios que encontrar. Tenho certeza de que você está no caminho certo!

Um abraço e bons estudos.