Nieuporządkowanie obiektów w JavaScript
Jak już wiesz, w tablicach elementy są ułożone w ścisłej kolejności, ponieważ pozycja każdego elementu określa jego klucz. W obiektach sami nadajemy klucze, dlatego kolejność elementów nie ma znaczenia. Czyli tablice są uporządkowanymi listami, a obiekty - nie.
Dla przykładu rozważmy taki obiekt:
let obj = {1: 'a', 2: 'b', 3: 'c'};
console.log(obj[1]); // wypisze 'a'
console.log(obj[2]); // wypisze 'b'
console.log(obj[3]); // wypisze 'c'
Jeśli przestawimy elementy tego obiektu w dowolnej kolejności (oczywiście, razem z ich kluczami), to nic się od tego w działaniu naszego skryptu nie zmieni:
let obj = {3: 'c', 1: 'a', 2: 'b'};
console.log(obj[1]); // wypisze 'a'
console.log(obj[2]); // wypisze 'b'
console.log(obj[3]); // wypisze 'c'
Ponadto, klucze numeryczne niekoniecznie muszą mieć wszystkie wartości bez luk, podobnie jak tablica. Możemy mieć dowolne liczby i nie spowoduje to żadnych problemów (podobnie jak rozrzedzenie w tablicach). Dlatego następujący obiekt jest poprawny:
let obj = {7: 'a', 50: 'b', 23: 'c'};
Utwórz obiekt i upewnij się, że kolejność kluczy w nim nie ma znaczenia.