Cita de: Agente Naranja en 26 Agosto 2020, 08:31 AMQue yo sepa, en JS también puedes tener un array con índices no numericos:
Ahí lo que estas haciendo es acceder a las propiedades como objeto del array. Es como hacer trampa y los "indices" que seteas no funcionan como array.
https://developer.mozilla.org/en-US/docs/Web/javascript/Reference/Global_Objects/Array
Arrays cannot use strings as element indexes (as in an associative array) but must use integers. Setting or accessing via non-integers using bracket notation (or dot notation) will not set or retrieve an element from the array list itself, but will set or access a variable associated with that array's object property collection. The array's object properties and list of array elements are separate, and the array's traversal and mutation operations cannot be applied to these named properties.
Una simple prueba:
Código (javascript) [Seleccionar]
let a = [];
a['indice'] = 'hola';
a['mundo'] = 'adios';
a.forEach(item => console.log(item)); //undefined
console.log(a.length); // 0
console.log(a.values()); // {}
Saludos