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'};
Объект түзүп, анын ичиндеги ачкычтардын иретинин мааниге ээ эместигине көзүңүз жеткирүү.