Javascript

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.

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) );

 

 

Ver comentários

Post Recentes

CNPJ alfanumérico Magento 2: módulo grátis com máscara e validação

Módulo gratuito Roger_CnpjAlfanumerico que aplica máscara e validação do novo CNPJ alfanumérico no checkout e formulários do Magento 2 e…

4 dias atrás

CNPJ alfanumérico no WooCommerce: plugin grátis de máscara e validação

A partir de 06/07/2026 a Receita passa a emitir CNPJ alfanumérico. Conheça o plugin grátis que aplica máscara e validação…

4 dias atrás

Como remover um modulo do Magento 2

Para remover um módulo do Magento 2, siga os passos abaixo: 1. Desabilitar o módulo Primeiro, desabilite o módulo usando…

1 ano atrás

Criar um memorando de crédito (cancelar) invoice no Magento 2

Para cancelar 100% do pedido e criar um crédito para todos os itens através da API REST do Magento 2,…

2 anos atrás

Consultando no banco quantidade disponivel para Venda (estoque)

No Magento 2, a quantidade "reservada" na "Salable Quantity" é gerenciada principalmente pelos módulos MSI (Multi-Source Inventory). A "Salable Quantity"…

2 anos atrás

Admin do Magento 2 não acessa

Como corrigir o erro ao acessar o Admin do Magento 2. Mesmo após fazer o login, permanece na tela de…

2 anos atrás