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'};
Бир объект яратинг ва унинг ичидаги калитларнинг тартиби аҳамиятга эта эмаслигига ишонч ҳосил қилинг.