Remove last json item with jQuery

Asked

Viewed 299 times

2

I have json messe format:

{
"indice1":['nome1', 'nome2'],
"indice2":['nome1', 'nome2', 'nome3']
}

What I want is when the user clicks on the delete button it deletes the last json item. In the case of the above json it would delete the nome3 and clicking again would delete the nome2and then exclude the nome1together with the International indice2(because it would delete the last json item and leave it empty so it could delete the Dice). And so on, always excluding the last item.

1 answer

1

Using the function .pop() of javascript, and selecting which key should have the element deleted, you can. In this case, this way:

HTML to test

<input type="button" value="exclui ultimo do indice 1" data-indice="indice1" />
<input type="button" value="exclui ultimo do indice 2" data-indice="indice2" />    

Javascript

var indices = {
    "indice1":['nome1', 'nome2'],
    "indice2":['nome1', 'nome2', 'nome3']
};

$("[data-indice]").on("click", function(event){
    var k = $(this).data("indice");
    // se o índice "k" (equivale a indice1 por exemplo) existir, então
    if (k in indices) {
        // aqui faz o que você precisa, seleciona o indice e apaga o ultimo elemento
        indices[k].pop();
        // aqui a prova que a linha de cima funciona
        alert(indices[k]);
        // aqui uma verificação do total que consta no item, se igual a zero, então excluí o índice
        if (indices[k].length == 0) {
            // tchau índice
            delete indices[k];
        }
    } else {
        alert('o indice ' + k + ' não existe mais!');
    }
});

I posted here on fiddle to check working.

Browser other questions tagged

You are not signed in. Login or sign up in order to post.