Olá a todos, boa noite.
Pessoal, alguém sabe me dizer se existe alguma estrutura igual ao Map<K, V> em javascript ou jquery?
Caso sim, qual estrutura seria? E como usa-la?
Caso não, conhecem algum método/ideia que eu possa usar para simular um Map?
Desde de já obrigado pela ajuda de todos.
Estrutura similar a um Map<K,V>
4 Respostas
Em javascript todo objeto pode ser considerado um map sem definição de tipos.
Ou seja, você pode utilizar simplesmente algo assim:
var mapa = {};
mapa["chave"] = "valor";
//ou
mapa.outraChave = "outroValor";
// ou ainda, passar valores ao construir objeto
mapa = { chave:"valor", outraChave:"outroValor" }
var mapa = {};
mapa["chave"] = "valor";
//ou
mapa.outraChave = "outroValor";
// ou ainda, passar valores ao construir objeto
mapa = { chave:"valor", outraChave:"outroValor" }
Suponha que eu tenha que armazenar mais de um valor para uma determinada chave, vai funcionar essa estrutura?
Falo em algo do tipo, suponhamos que para a chave A eu queira armazenar os valores a1, a2 e a3.
Em java eu poderia definir um Map<> da seguinte forma Map<String, ArrayList><String>> algumNome = new Hashmap<String, ArrayList><String>>(): que funcionaria.
No entanto, em javascript como que eu poderia definir isso?
Ah, mas aí já teve uma alteração de escopo na sua pergunta…rs
No javascript por padrão você pode encarar (de forma simplificada) como tendo duas estruturas: o mapa (que falei) e um array.
O array não tem tamanho fixo como no java, então você pode usá-lo como uma lista.
No seu caso ficaria:
var mapaDeListas = { chave1 : [ "a1", "a2", "a3" ], chave2: ["b1", "b2", "b3"] }
Obrigado AbelBueno pelas dicas, mas aprofundando um pouco mais as coisas, vamos a um novo cenário rs
Suponhamos o seguinte agora.
Na minha chave A já tenho o valor a1 adicionado
var mapaDeListas = { A : [ "a1"] }
Agora irei adicionar um valor a2 a chave A, sei que antes de adicionar qualquer valor devo verificar se a Chave A já existe.
Caso ela não exista então devo adiciona-la juntamente com o meu valor.
No entanto, caso ela exista tenho que ter o cuidado de não sobrescrever o valor já existente.
A minha dúvida é, como que faço essa verificação? E como que faço para adicionar esse meu novo valor a2?