JavaScript'da massivlar (Arrays), indekslash, push/pop/shift/unshift metodlari, slice vs splice, element qidirish, ko'p o'lchamli massivlar, reference xususiyati hamda amaliy mashq va testlar.
Array — bir nechta qiymatni bitta o'zgaruvchida saqlash uchun ishlatiladigan tuzilma. Bu bobda array yaratish, o'zgartirish va uning asosiy metodlarini o'rganamiz.
Array — tartiblangan ro'yxat ko'rinishidagi ma'lumotlar to'plami.
Agar 100 ta talabaning ismini saqlash kerak bo'lsa, 100 ta alohida variable yaratish o'rniga, bitta array ichida saqlash mumkin.
🗄️ Array — bu raqamlangan javonlar qatori. Har bir javon (index) o'z ichida bitta narsani saqlaydi, va siz raqami orqali kerakli javonni topasiz.
script.jsJavaScriptlet fruits = ["olma", "banan", "uzum"];console.log(fruits[0]); // "olma"console.log(fruits[2]); // "uzum"
Array elementlari 0dan boshlab raqamlanadi (index). fruits[0] — birinchi element.
⚠️ Common Mistake
Array index 1dan emas, 0dan boshlanadi. Bu ko'p dasturchilar (ayniqsa yangi boshlovchilar) yo'l qo'yadigan xato.
script.jsJavaScriptlet colors = ["qizil", "yashil", "ko'k"];console.log(colors.length); // 3console.log(colors[colors.length - 1]); // "ko'k" (oxirgi element)
💡 Key Idea
array.length - 1 — har doim oxirgi elementning indexini beradi.
| Metod | Vazifasi | Qayerga ta'sir qiladi |
|---|---|---|
push() | Element qo'shadi | Oxiriga |
pop() | Elementni o'chiradi | Oxiridan |
unshift() | Element qo'shadi | Boshiga |
shift() | Elementni o'chiradi | Boshidan |
script.jsJavaScriptlet numbers = [1, 2, 3];numbers.push(4); // [1, 2, 3, 4]numbers.pop(); // [1, 2, 3]numbers.unshift(0); // [0, 1, 2, 3]numbers.shift(); // [1, 2, 3]console.log(numbers);
slice() — array'ning bir qismini nusxalab oladi, asl array o'zgarmaydi.splice() — array'ni to'g'ridan-to'g'ri o'zgartiradi: element qo'shish, o'chirish yoki almashtirish mumkin.script.jsJavaScriptlet letters = ["a", "b", "c", "d", "e"];let sliced = letters.slice(1, 3);console.log(sliced); // ["b", "c"]console.log(letters); // ["a", "b", "c", "d", "e"] — o'zgarmaganletters.splice(1, 2, "X", "Y");console.log(letters); // ["a", "X", "Y", "d", "e"] — o'zgargan
⚠️ Common Mistake
slice() va splice()ni bir-biriga chalkashtirish. Nomi o'xshash, lekin natijasi butunlay farq qiladi.
✅ Correct: Asl array'ni saqlab qolish kerak bo'lsa → slice()
✅ Correct: Array'ni o'zgartirish kerak bo'lsa → splice()
| Metod | Qaytaradi |
|---|---|
indexOf(value) | Elementning indexi (topilmasa -1) |
includes(value) | true / false |
find(callback) | Shartga mos birinchi element |
findIndex(callback) | Shartga mos birinchi element indexi |
script.jsJavaScriptlet numbers = [10, 20, 30, 40];console.log(numbers.indexOf(30)); // 2console.log(numbers.includes(50)); // falselet found = numbers.find(n => n > 25);console.log(found); // 30
Array ichida array bo'lishi mumkin — bu ko'pincha jadval yoki matritsalarni ifodalash uchun ishlatiladi.
script.jsJavaScriptlet matrix = [[1, 2, 3],[4, 5, 6],[7, 8, 9]];console.log(matrix[1][2]); // 6
code.textTEXTmatrix[0] → [1, 2, 3]matrix[1] → [4, 5, 6]matrix[2] → [7, 8, 9]matrix[1][2] → 6
Berilgan qiymat array ekanligini tekshiradi.
script.jsJavaScriptconsole.log(Array.isArray([1, 2, 3])); // trueconsole.log(Array.isArray("salom")); // false
🔗 Connection
Eslatma: typeof [1,2,3] natijasi "object" bo'ladi (Chapter 2), shuning uchun array ekanligini aniqlash uchun maxsus Array.isArray() kerak bo'ladi.
Task:
5 ta shahar nomidan iborat array yarating va for loop yordamida barchasini konsolga chiqaring.
Required Concepts:
for looparray.length dan foydalaning.Task:
Array ichidan eng katta sonni topadigan function yozing (array metodlaridan foydalanmasdan, faqat loop bilan).
script.jsJavaScriptlet numbers = [5, 12, 8, 42, 3];
Required Concepts:
for loopmax = numbers[0] deb belgilang, keyin har bir elementni solishtiring.Task:
Array ichidagi takrorlanuvchi elementlarni olib tashlaydigan function yozing (natija — faqat noyob qiymatlar).
script.jsJavaScriptlet nums = [1, 2, 2, 3, 4, 4, 5];// Natija: [1, 2, 3, 4, 5]
Required Concepts:
includes()push()script.jsJavaScriptlet arr = [1, 2, 3];let copy = arr;copy.push(4);console.log(arr);
🧠 Think first! Javobni ko'rishdan oldin kamida 30 soniya o'ylang.
<details> <summary>Answer</summary> [1, 2, 3, 4]Why?
Array — reference type (Chapter 2). copy = arr array'ning nusxasini emas, xuddi shu array'ga havolani yaratadi. Shuning uchun copyni o'zgartirish arrga ham ta'sir qiladi.
Quyidagi kodda muammo bor:
script.jsJavaScriptlet fruits = ["olma", "banan"];let newFruits = fruits.slice(0);newFruits.push("uzum");console.log(fruits.length); // dasturchi 3 kutgan edi
Your Task:
push/pop — oxiridan, unshift/shift — boshidan ishlaydi.slice() — nusxa oladi, splice() — asl array'ni o'zgartiradi.find, indexOf, includes — qidirish uchun.= bilan nusxalanmaydi.slice() xavfsiz (asl array o'zgarmaydi), splice() xavfli (asl array o'zgaradi).= orqali nusxalash asl array'ga ham ta'sir qiladi.Array.isArray() — array ekanligini tekshirishning to'g'ri yo'li.script.jsJavaScriptlet arr = [1, 2, 3];arr.push(4); // oxiriga qo'shisharr.pop(); // oxiridan o'chirisharr.unshift(0); // boshiga qo'shisharr.shift(); // boshidan o'chirisharr.slice(1, 3); // nusxa olisharr.splice(1, 1); // o'zgartirisharr.indexOf(2); // index topisharr.includes(2); // mavjudligini tekshirishArray.isArray(arr); // array ekanligini tekshirish
Mavzu bo‘yicha tushunchalaringizni interaktiv test orqali sinovdan o‘tkazing va natijalarni bilib oling.
Darslikda o‘rganilgan qoidalarga asosan real kod yozing, testlardan o‘tkazing va yechimlarni mustahkamlang.
Test Sinovi
Hali topshirilmagan (kamida 75% kerak)
Amaliy Masalalar
0 / 3 ta yechildi (kamida 75% kerak)
Dars sifati va mazmunini yaxshilash uchun o‘z haqqoniy bahoingizni qoldiring.
Mavzuni to‘liq o‘zlashtirish uchun test sinovi, amaliy kodlash va bog‘liq darslar
O‘z bilimingizni interaktiv test savollari orqali tekshiring va darhol xatolarni tahlil qiling.
Nazariyani real kod yozish bilan mustahkamlang, avtomatik testlardan o‘ting va XP to‘plang.
Kurs bo‘yicha keyingi va bog‘liq mavzular: