Ya hay algunos ejemplos sencillos, pero me doy cuenta de cómo redactó su pregunta que probablemente proviene de un fondo PHP y espera que JavaScript funcione de la misma manera, no es así. Un PHP array
es muy diferente de un JavaScriptArray
.
En PHP, una matriz asociativa puede hacer la mayor parte de lo que puede hacer una matriz indexada numéricamente (las array_*
funciones funcionan, puedecount()
, etc.) Simplemente cree una matriz y comience a asignar índices de cadena en lugar de numéricos.
En JavaScript, todo es un objeto (excepto las primitivas: cadena, numérico, booleano), y las matrices son una implementación determinada que le permite tener índices numéricos. Cualquier cosa empujado a una matriz afectará a su length
, y puede ser iterado sobre el uso de métodos Array ( map
, forEach
, reduce
, filter
,find
, etc.) Sin embargo, como todo es un objeto, que está siempre libre para asignar propiedades simplemente, porque eso es algo que se hace a cualquier objeto La notación de corchetes es simplemente otra forma de acceder a una propiedad, por lo que en su caso:
array['Main'] = 'Main Page';
en realidad es equivalente a:
array.Main = 'Main Page';
Según su descripción, supongo que desea una 'matriz asociativa', pero para JavaScript, este es un caso simple de usar un objeto como un mapa hash. Además, sé que es un ejemplo, pero evite nombres sin sentido que solo describan el tipo de variable (por ejemplo array
) y el nombre en función de lo que debe contener (por ejemplo pages
). Los objetos simples no tienen muchas buenas formas directas de iterar, por lo que a menudo los convertiremos primero en matrices utilizando Object
métodos ( Object.keys
en este caso, también hay entries
y values
se agregarán a algunos navegadores en este momento) que podemos recorrer.
// 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));