Estrutura similar a um Map<K,V>

4 respostas
jeovane.reges

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.

4 Respostas

A

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" }
jeovane.reges

AbelBueno:
var mapa = {}; mapa[&quot;chave&quot;] = &quot;valor&quot;; //ou mapa.outraChave = &quot;outroValor&quot;; // ou ainda, passar valores ao construir objeto mapa = { chave:&quot;valor&quot;, outraChave:&quot;outroValor&quot; }

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?

A

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"]  }
jeovane.reges

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?

Criado 24 de janeiro de 2013
Ultima resposta 24 de jan. de 2013
Respostas 4
Participantes 2