Já existem alguns exemplos simples, mas noto que, como você formulou sua pergunta, você provavelmente provém de um background em PHP e espera que o JavaScript funcione da mesma maneira - isso não acontece. Um PHP array
é muito diferente de um JavaScript Array
.
No PHP, uma matriz associativa pode fazer a maior parte do que uma matriz indexada numericamente (as array_*
funções funcionam, você pode count()
, etc.) Você simplesmente cria uma matriz e começa a atribuir a índices de string em vez de numéricos.
No JavaScript, tudo é um objeto (exceto os primitivos: string, numérico, booleano) e as matrizes são uma certa implementação que permite que você tenha índices numéricos. Qualquer coisa empurrado para uma matriz vai efectuar a sua length
, e pode ser iterada usando métodos Array ( map
, forEach
, reduce
, filter
, find
, etc.) No entanto, porque tudo é um objeto, você está sempre livre para simplesmente propriedades atribuir, porque isso é algo que você faz para qualquer objeto. A notação entre colchetes é simplesmente outra maneira de acessar uma propriedade, portanto, no seu caso:
array['Main'] = 'Main Page';
é realmente equivalente a:
array.Main = 'Main Page';
Pela sua descrição, meu palpite é que você deseja uma 'matriz associativa', mas para JavaScript, este é um caso simples de usar um objeto como um mapa de hash. Além disso, eu sei que é um exemplo, mas evite nomes sem significado que descrevam apenas o tipo de variável (por exemplo array
) e o nome com base no que ela deve conter (por exemplo pages
). Objetos simples não têm muitas boas maneiras diretas de iterar; portanto, muitas vezes nos transformaremos em matrizes primeiro usando Object
métodos ( Object.keys
neste caso - há também entries
e values
estão sendo adicionados a alguns navegadores agora) que podemos fazer loop.
// assigning values to corresponding keys
const pages = {
Main: 'Main page',
Guide: 'Guide page',
Articles: 'Articles page',
Forum: 'Forum board',
};
Object.keys(pages).forEach((page) => console.log(page));