JavaScript да объектларнинг тартибсизлиги
Сиз билланингиздек, массивларда элементлар қаттиқ тартибда жойлашади, чунки ҳар бир элементнинг позицияси унинг калитини аниқлайди. Объектларда эса биз ўзимиз калитларни тайинлаймиз, шунинг учун элементларнинг кетма-кетлиги аҳамиятга эта эмас. Яъни массивлар тартибланган рўйхатлардир, аммо объектлар - йўқ.
Мисол учун куйидаги объектни кўриб чиқайлик:
javascriptlet obj = {1: 'a', 2: 'b', 3: 'c'};
console.log(obj[1]); // 'a' ни кўрсатади
console.log(obj[2]); // 'b' ни кўрсатади
console.log(obj[3]); // 'c' ни кўрсатади
Агар бу объект элементларини ихтиёрий тартибда алмаштирсак (албатта, уларнинг калитлари билан бирга), у ҳолда бизнинг скриптимиз ишида ҳеч қандай ўзгариш бўлмайди:
javascriptlet obj = {3: 'c', 1: 'a', 2: 'b'};
console.log(obj[1]); // 'a' ни кўрсатади
console.log(obj[2]); // 'b' ни кўрсатади
console.log(obj[3]); // 'c' ни кўрсатади
Бундан ташқари, рақамли калитлар массив каби тешиксиз барча қийматларга эга бўлиши шарт эмас. Бизда ихтиёрий рақамлар бўлиши мумкин ва бу ҳеч қандай муаммоларга олиб келмайди (массивлардаги енгилликка ўхшаш). Шунинг учун куйидаги объект тўғри:
javascriptlet obj = {7: 'a', 50: 'b', 23: 'c'};
Бир объект яратинг ва унинг ичидаги калитларнинг тартиби аҳамиятга эта эмаслигига ишонч ҳосил қилинг.