Remove last jSON item with jQuery

2

I have the json messe format:

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

What I want is when the user clicks the delete button it deletes the last item from json. In the case of jSON above it would exclude nome3 and clicking again would exclude nome2 and then delete nome1 together with index indice2 (since it would delete the last jSON item and leave it empty so it could delete tb or index). And so on, always excluding the last item.

    
asked by anonymous 08.09.2016 / 05:03

1 answer

1

Using the .pop() function of javascript , and selecting which key the deleted element should have, 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 it on the fiddle to check it out.

    
08.09.2016 / 06:26