Como criar um Array associativo pelo Javascript.
Em diversas linguagens de programação é possível utilizar uma string, nome, invés do índice número no Array.
Não é o caso do Javascript.
Infelizmente o javascript não suporte nomes nos índices dos arrays (elemento do tipo Array).
Porém isso não impede que você os utilize mesmo assim.
var cachorro = []; cachorro ["nome"] = "bolinha"; cachorro ["raca"] = "pitbul"; cachorro ["idade"] = 4;
O que irá acontecer é que o Array será convertido para um Objeto padrão.
Não será mais possível a utilização de alguns métodos e propriedades que são utilizados no Array.
console.log( cachorro.length ); // irá retornar zero
Não será mais possível acessar também os elementos utilizando os índices numéricos.
console.log( cachorro[0] ); // irá retornar indefinido
Trabalhando com Object
Exemplo de uma objeto com vários atributos.
var pessoa = {nome:"Roger", sobrenome:"Takemiya", idade:26, corOlhos:"castanho"};
Para acessar o valor dos atributos utilize:
console.log( pessoa.nome ); // output: Roger
Para percorrer um array de objetos utilize:
var data = { "messages": [{"msgFrom": "13223821242","msgBody": "Hi there"}, {"msgFrom": "Bill","msgBody": "Hello!"}] }; for (var key in data.messages) { var obj = data.messages[key]; console.log( obj.msgFrom ); }
Array ou Objeto?
Sempre utilizamos o typeof para descobrir o tipo de uma variável no Javascript, porém no caso do Array, sempre será retornado o valor “object”.
var frutas = ["laranja", "pera", "uva", "morango"]; typeof frutas ; // object
Então como descobrir se uma variável é um array ou objeto? Utilizando Array.isArray.
var cachorro = []; cachorro['nome'] = "bolinha"; console.log( Array.isArray(cachorro) ); // irá retornar false
A solução acima só irá funcionar em navegadores modernos, como solução alternativa podemos criar a nossa própria função, segue o exemplo:
function isArray(array) { return array.constructor.toString().indexOf("Array") > -1; } var array_temp = []; array_temp[0] = 1; console.log( isArray(array_temp) );
3 comentários sobre “Array associativo no Javascript, como funciona e suas limitações”