Неподреденост на обекти в JavaScript
Както вече знаете, в масивите елементите се подреждат в строг ред, тъй като позицията на всеки елемент определя неговия ключ. В обектите ние сами назначаваме ключовете, затова редът на следване на елементите няма значение. Тоест масивите са подредени списъци, а обектите - не.
За пример нека разгледаме следния обект:
let obj = {1: 'a', 2: 'b', 3: 'c'};
console.log(obj[1]); // ще изведе 'a'
console.log(obj[2]); // ще изведе 'b'
console.log(obj[3]); // ще изведе 'c'
Ако пренаредите елементите на този обект в произволен ред (разбира се, заедно с техните ключове), нищо няма да се промени в работата на нашия скрипт:
let obj = {3: 'c', 1: 'a', 2: 'b'};
console.log(obj[1]); // ще изведе 'a'
console.log(obj[2]); // ще изведе 'b'
console.log(obj[3]); // ще изведе 'c'
Освен това, числовите ключове не е задължително да имат всички стойности без пропуски, подобно на масив. Можем да имаме произволни числа и това няма да причини никакви проблеми (подобно на разрежеността при масивите). Затова следният обект е коректен:
let obj = {7: 'a', 50: 'b', 23: 'c'};
Създайте обект и се убедете, че редът на ключовете в него няма значение.