Az objektumok rendezetlensége a JavaScriptben
Amint azt már tudja, a tömbökben az elemek szigorú sorrendben helyezkednek el, hiszen minden elem pozíciója határozza meg a kulcsát. Az objektumokban viszont mi magunk rendeljük hozzá a kulcsokat, ezért az elemek sorrendje nem számít. Vagyis a tömbök rendezett listák, az objektumok viszont nem azok.
Példaként vegyük a következő objektumot:
let obj = {1: 'a', 2: 'b', 3: 'c'};
console.log(obj[1]); // kiírja 'a'-t
console.log(obj[2]); // kiírja 'b'-t
console.log(obj[3]); // kiírja 'c'-t
Ha az objektum elemeit tetszőleges sorrendbe rendezzük (természetesen a kulcsaikkal együtt), akkor semmi sem változik a szkriptünk működésében:
let obj = {3: 'c', 1: 'a', 2: 'b'};
console.log(obj[1]); // kiírja 'a'-t
console.log(obj[2]); // kiírja 'b'-t
console.log(obj[3]); // kiírja 'c'-t
Ezen kívül a numerikus kulcsoknak nem feltétlenül kell minden értékkel rendelkezniük hézagok nélkül, mint egy tömbben. Lehetnek tetszőleges számaink, és ez nem fog semmilyen problémához vezetni (hasonlóan a tömbök ritkaságához). Ezért a következő objektum helyes:
let obj = {7: 'a', 50: 'b', 23: 'c'};
Hozzon létre egy objektumot és győződjön meg róla, hogy a kulcsok sorrendje benne nem számít.