Desorden de los objetos en JavaScript
Como ya sabes, en los arrays los elementos se ubican en un orden estricto, ya que la posición de cada elemento determina su clave. En los objetos, nosotros mismos asignamos las claves, por lo que el orden de los elementos no importa. Es decir, los arrays son listas ordenadas, y los objetos no lo son.
Como ejemplo, consideremos el siguiente objeto:
let obj = {1: 'a', 2: 'b', 3: 'c'};
console.log(obj[1]); // mostrará 'a'
console.log(obj[2]); // mostrará 'b'
console.log(obj[3]); // mostrará 'c'
Si reorganizas los elementos de este objeto en un orden arbitrario (por supuesto, junto con sus claves), nada cambiará en el funcionamiento de nuestro script:
let obj = {3: 'c', 1: 'a', 2: 'b'};
console.log(obj[1]); // mostrará 'a'
console.log(obj[2]); // mostrará 'b'
console.log(obj[3]); // mostrará 'c'
Además, las claves numéricas no necesariamente deben tener todos los valores sin espacios, como en un array. Podemos tener números arbitrarios y esto no causará ningún problema (similar a la dispersión en los arrays). Por lo tanto, el siguiente objeto es correcto:
let obj = {7: 'a', 50: 'b', 23: 'c'};
Crea un objeto y comprueba que el orden de las claves en él no importa.