Desordenação de Objetos em JavaScript
Como você já sabe, nos arrays, os elementos são dispostos em uma ordem estrita, pois a posição de cada elemento determina sua chave. Nos objetos, nós mesmos atribuímos as chaves, portanto a ordem dos elementos não importa. Ou seja, arrays são listas ordenadas, e objetos não são.
Como exemplo, considere este objeto:
let obj = {1: 'a', 2: 'b', 3: 'c'};
console.log(obj[1]); // exibirá 'a'
console.log(obj[2]); // exibirá 'b'
console.log(obj[3]); // exibirá 'c'
Se reorganizarmos os elementos deste objeto em uma ordem arbitrária (é claro, juntamente com suas chaves), nada mudará no funcionamento do nosso script:
let obj = {3: 'c', 1: 'a', 2: 'b'};
console.log(obj[1]); // exibirá 'a'
console.log(obj[2]); // exibirá 'b'
console.log(obj[3]); // exibirá 'c'
Além disso, as chaves numéricas não precisam necessariamente ter todos os valores sem lacunas, como em um array. Podemos ter números arbitrários e isso não causará nenhum problema (semelhante à esparsidade em arrays). Portanto, o seguinte objeto é correto:
let obj = {7: 'a', 50: 'b', 23: 'c'};
Crie um objeto e verifique que a ordem das chaves nele não importa.