Array associativo no Javascript, como funciona e suas limitações

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.

array associativo no javascript

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

    1. patricia, boa noite, por que você deseja utilizar jQuery? Array é um recurso nativo do Javascript, já o jQuery que é apenas um framework só irá permitir que a manipulação seja feita de uma forma diferente, nada além disso.

Dúvidas? Faça um comentário logo abaixo ou envie uma mensagem clicando aqui.

O seu endereço de e-mail não será publicado.