Javascript

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

Como criar um Array associativo pelo .

Em diversas linguagens de é 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

Por que devo sempre manter o Magento 2 atualizado?

Segurança: Atualizações frequentes geralmente incluem patches de segurança para corrigir vulnerabilidades identificadas. Ao manter o Magento atualizado, você reduz significativamente…

1 mês atrás

Adicionar uma mensagem de Alerta ou Aviso do Admin do Magento 2

Como adicionar uma mensagem de Alerta ou Aviso do Admin do Magento 2 Injete o Magento\Framework\Message\ManagerInterface no construtor da sua…

1 mês atrás

Exibir mensagens erro/sucesso da Classe: Magento\Framework\Message\ManagerInterface

Para exibir as mensagens adicionadas na classe Magento\Framework\Message\ManagerInterface em um arquivo .phtml, você pode usar o seguinte código: <?php $objectManager…

1 mês atrás

Exportar as categorias do Magento 2 em um XML

Para criar um script no Magento 2 que exporte as categorias para um arquivo XML com o nome da categoria,…

2 meses atrás

Colocar um video como Background utilizando HTML + CSS

Para definir um vídeo MP4 como plano de fundo em um <div> usando HTML e CSS, você pode seguir estas…

4 meses atrás

Desativar o “lastname” no Magento 2

Como desativar o "lastname" no Magento 2 e Adobe Commerce Desativando a obrigatoriedade do campo Execute a SQL abaixo diretamente…

4 meses atrás