Pessoal estou tentando criar um Map (Map<k,v> em java) em javascript, onde as chaves e os valores são adicionados dinamicamente, no entanto, quando tento "cria-los" de maneira dinâmica sempre acaba dando erro.
Tento criá-los a partir do seguinte código.
var key;
var value;
$(".conteudoMenu a").click(function(){
// Obtenhos os valores das Keys
key = $(this).parent(".conteudoMenu").parent("li").find(".itemMenu").attr("id");
// Obtenho os valores do Values
value = $(this).attr("id");
// Método que chamo para adicionar as keys e os values
Processar({ key : [value] });
});
var Processar = function(mapaDeListas) {
// mapaDeListas[key] -> Cria o array com o nome da Key
// Verifica se já existe chave vinda do "key" e se o valor de "value" está presente no array
if (mapaDeListas[key] && $.inArray(value, mapaDeListas[key]) == -1) {
// Caso o array com o nome da key já exista e o valeu não, então, ele adicionar o value a sua respectiva key
mapaDeListas[key].push(value);
}
else {
// Caso a condição acima seja false, então, cria-se o array de acordo com o valor da "key" e adiciona o valor de "value"
mapaDeListas[key] = [value];
}
}
No entanto, da maneira que meu codigo estar, mesmo que eu adicione dois valores pertencente a mesma Key, ele sempre cai no else além de sobrescrever os valores já existentes.
E caso eu adicione uma Key nova em vez de ser criado um novo array o que acontece é que este novo sobrescreve o anterior.
Alguém sabe me dizer o que devo fazer para corrigir o meu código?
Pergunta
Jeovane
Olá a todos, boa tarde.
Pessoal estou tentando criar um Map (Map<k,v> em java) em javascript, onde as chaves e os valores são adicionados dinamicamente, no entanto, quando tento "cria-los" de maneira dinâmica sempre acaba dando erro.
Tento criá-los a partir do seguinte código.
No entanto, da maneira que meu codigo estar, mesmo que eu adicione dois valores pertencente a mesma Key, ele sempre cai no else além de sobrescrever os valores já existentes.
E caso eu adicione uma Key nova em vez de ser criado um novo array o que acontece é que este novo sobrescreve o anterior.
Alguém sabe me dizer o que devo fazer para corrigir o meu código?
Desde de já obrigado pela ajuda de todos.
Link para o comentário
Compartilhar em outros sites
0 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.