JS massivlar
Array — ma’lumotlar to‘plamini saqlash uchun mo‘ljallangan Object turidir.
JavaScript Arraylarining asosiy xususiyatlari:
- Elementlar: Array — bu elementlar deb ataluvchi qiymatlar ro‘yxatidir.
- Tartiblangan: Array elementlari o‘z indekslariga ko‘ra tartiblanadi.
- Noldan boshlanuvchi indeks: Birinchi element 0-indeksda, ikkinchi element 1-indeksda va hokazo.
- Dinamik hajm: Elementlar qo‘shilishi yoki o‘chirilishi bilan Array hajmi kengayishi yoki qisqarishi mumkin.
- Heterojen: Arraylar turli xil ma’lumotlarning elementlarini (Numberlar, Stringlar, obyektlar va boshqa Arraylar) saqlashi mumkin.
Nega massivlardan foydalanish kerak?
Agar sizda obyektlar ro‘yxati (masalan, avtomobil nomlari ro‘yxati) bo‘lsa, nomlarni bitta o‘zgaruvchida saqlash quyidagicha ko‘rinishi mumkin:
let car1 = "Saab";
let car2 = "Volvo";
let car3 = "BMW";
Biroq, agar siz mashinalar orasidan aylanib, ma’lum birini topmoqchi bo‘lsangiz-chi? Va agar sizda 3 ta emas, balki 300 ta mashina bo‘lsa-chi?
Yechim - Array!
Array bitta nom ostida ko‘plab qiymatlarni saqlay oladi va ularga indeks raqami orqali murojaat qilish mumkin.
Array yaratish
Array literali [...] dan foydalanish JavaScript massivini yaratishning eng oson usulidir.
Sintaksis:
const array_name = [item1, item2, ...];
Massivlarni const kalit so‘zi bilan e’lon qilish odatiy holdir.
Arraylar bilan const haqida ko‘proq ma’lumot oling: JS Array Const.
Bo‘sh joylar va qator ko‘chirishlar muhim emas. E’lon bir nechta qatorga cho‘zilishi mumkin:
Bundan tashqari, bo‘sh Array yaratishingiz va keyinroq elementlarni taqdim etishingiz mumkin:
Yangi JavaScript kalit so‘zidan foydalanish
Quyidagi misol, shuningdek, Array yaratadi va unga qiymatlarni tayinlaydi:
Yuqoridagi ikkita misol xuddi shunday qiladi.
Oddiylik, o‘qilishi va tezligi uchun siz ko‘pincha massivning literal usulidan foydalanishingiz mumkin.
Array elementlariga murojaat qilish
Array elementiga uning indeks raqami orqali murojaat qilasiz:
const cars = ["Saab", "Volvo", "BMW"];
let car = cars[0];
O‘zingiz sinab ko‘ring »
Eslatma: Array indekslari 0 dan boshlanadi. [0] — birinchi element, [1] — ikkinchi element.
[0] birinchi element. [1] ikkinchi element hisoblanadi.
Array elementini o‘zgartirish
Ushbu ko‘rsatma cars massividagi birinchi element qiymatini o‘zgartiradi:
cars[0] = "Opel";
Massivni stringga aylantirish
JavaScript-dagi toString() metodi massivni vergul bilan ajratilgan stringga aylantiradi:
Misol
const fruits = ["Banana", "Orange", "Apple", "Mango"];
document.getElementById("demo").innerHTML = fruits.toString();
Natija:
Massivni ko‘rsatish
JavaScript-da to‘liq Array Array nomiga murojaat qilib ko‘rsatilishi mumkin:
JSON yordamida massivni ko‘rsatish
To‘liq Array JSON.stringify() yordamida ham ko‘rsatilishi mumkin:
Misol
const cars = ["Saab", "Volvo", "BMW"];
let text = JSON.stringify(cars);
O‘zingiz sinab ko‘ring »
Arraylar Object hisoblanadi
Arraylar obyektlarning maxsus turidir. JavaScript-da typeof operatori Arraylar uchun "object" qaytaradi.
Biroq, JavaScript massivlarini Array deb tushunish eng to‘g‘risidir.
Massivlar uning “elementlariga” kirish uchunraqamlardan foydalanadi. Bunda
misol, person[0]
Jon qaytaradi:
Obyektlar uning "a’zolari" ga kirish uchun nomlardan foydalanadi. Bu misolda,
person.firstName
Jon qaytaradi:
Array elementlari Object bo‘lishi mumkin
JavaScript o‘zgaruvchilari Object bo‘lishi mumkin. Arraylar esa obyektlarning maxsus turidir.
Shu sababli bitta Array ichida turli xil ma’lumot turlariga ega o‘zgaruvchilarni saqlashingiz mumkin.
Array ichida Objectlar, Functionlar va hatto boshqa Arraylar bo‘lishi mumkin:
myArray[0] = Date.now;
myArray[1] = myFunction;
myArray[2] = myCars;
Array xususiyatlari va metodlari
JavaScript massivlarining haqiqiy kuchi ularning ichki xususiyatlari va metodlaridadir:
cars.length // Returns the number of elements
cars.sort() // Sorts the array
Array metodlari keyingi boblarda batafsil yoritilgan.
length xususiyati
Massivning length xususiyati Array uzunligini (elementlar sonini) qaytaradi:
Misol
const fruits = ["Banana", "Orange", "Apple", "Mango"];
let length = fruits.length;
O‘zingiz sinab ko‘ring »
length xususiyati har doim eng katta indeksdan 1 ga ko‘p bo‘ladi.
Birinchi Array elementiga kirish
Misol
const fruits = ["Banana", "Orange", "Apple", "Mango"];
let fruit = fruits[0];
O‘zingiz sinab ko‘ring »
Massivning oxirgi elementiga kirish
Misol
const fruits = ["Banana", "Orange", "Apple", "Mango"];
let fruit = fruits[fruits.length - 1];
O‘zingiz sinab ko‘ring »
Array elementlarini Loop yordamida aylanib chiqish
Massivni aylanib chiqish usullaridan biri for siklidan foydalanishdir:
Misol
const fruits = ["Banana", "Orange", "Apple", "Mango"];
let fLen = fruits.length;
let text = "<ul>";
for (let i = 0; i < fLen; i++) {
text += "<li>" + fruits[i] + "</li>";
}
text
+= "</ul>";
O‘zingiz sinab ko‘ring »
Shuningdek, Array.forEach() funksiyasidan ham foydalanishingiz mumkin:
Misol
const fruits = ["Banana", "Orange", "Apple", "Mango"];
let text = "<ul>";
fruits.forEach(myFunction);
text += "</ul>";
function
myFunction(value) {
text += "<li>" + value + "</li>";
}
O‘zingiz sinab ko‘ring »
Massivga yangi element qo‘shish
Massivga yangi element qo‘shishning eng oson yo‘li push() metodidir:
Misol
const fruits = ["Banana", "Orange", "Apple"];
fruits.push("Lemon"); // Adds a new element (Lemon) to fruits
O‘zingiz sinab ko‘ring »
Yangi elementni length xususiyati yordamida ham qo‘shish mumkin:
Misol
const fruits = ["Banana", "Orange", "Apple"];
fruits[fruits.length] = "Lemon"; // Adds "Lemon" to fruits
O‘zingiz sinab ko‘ring »
Ogohlantirish!
Yuqori indeksli elementlarni qo‘shish massivda aniqlanmagan "teshiklar" yaratishi mumkin:
Misol
const fruits = ["Banana", "Orange", "Apple"];
fruits[6] = "Lemon"; // Creates undefined "holes" in fruits
O‘zingiz sinab ko‘ring »
Assotsiativ Arraylar
Ko‘plab dasturlash tillari nomlangan indeksli massivlarni qo‘llab-quvvatlaydi.
Nomlangan indeksli Arraylar assotsiativ Arraylar (yoki heshlar) deb ataladi.
JavaScript nomlangan indeksli massivlarni qo‘llab-quvvatlamaydi.
JavaScript-da Arraylar har doim raqamlangan indekslardan foydalanadi.
Misol
const person = [];
person[0] = "John";
person[1] = "Doe";
person[2] = 46;
person.length; // Will return 3
person[0]; // Will return "John"
O‘zingiz sinab ko‘ring »
OGOHLANTIRISH!! Agar siz nomlangan indekslardan foydalansangiz, JavaScript massivni obyektga qayta belgilaydi.
Shundan so‘ng ayrim Array metodlari va xususiyatlari noto‘g‘ri natija bera boshlaydi.
Misol:
const person = [];
person["firstName"] = "John";
person["lastName"] = "Doe";
person["age"] = 46;
person.length; // Will return 0
person[0]; // Will return undefined
O‘zingiz sinab ko‘ring »
Arraylar va Objectlar o‘rtasidagi farq
JavaScript-da Arraylar raqamlangan indekslardan foydalanadi.
JavaScript-da Objectlar nomlangan indekslardan foydalanadi.
Arraylar — bu raqamlangan indekslarga ega bo‘lgan maxsus obyektlardir.
Qachon Array, qachon Object ishlatish kerak?
- JavaScript assotsiativ massivlarni qo‘llab-quvvatlamaydi.
- Element nomlari String (matn) bo‘lishini xohlaganingizda obyektlardan foydalaning.
- Element nomlari tartib raqamlari bo‘lishini xohlaganingizda massivlardan foydalaning.
JavaScript yangi Array()
JavaScript’da o‘rnatilgan new Array() massiv konstruktori mavjud.
Lekin uning o‘rniga [] dan xavfsiz foydalanishingiz mumkin.
Ushbu ikki xil operator nuqtalar deb nomlangan yangi bo‘sh massivni yaratadi:
const points = new Array();
const points = [];
Ushbu ikki xil operator 6 ta raqamdan iborat yangi massivni yaratadi:
const points = new Array(40, 100, 1, 5, 25, 10);
const points = [40, 100, 1, 5, 25, 10];
O‘zingiz sinab ko‘ring »
Batafsil bilib oling:
Massivni qanday tanib olish mumkin
Umumiy savol: o‘zgaruvchining Array ekanligini qanday bilsam bo‘ladi?
Muammo shundaki, JavaScript operatori typeof qaytadi
" object ":
const fruits = ["Banana", "Orange", "Apple"];
let type = typeof fruits;
O‘zingiz sinab ko‘ring »
Typeof operatori obyektni qaytaradi, chunki JavaScript Array obyektdir.
Yechim 1:
Ushbu muammoni hal qilish uchun ECMAScript 5 (JavaScript 2009) yangi Array.isArray() usulini aniqladi:
Array.isArray(fruits);
O‘zingiz sinab ko‘ring »
Yechim 2:
Agar obyekt berilgan konstruktor tomonidan yaratilgan bo‘lsa, instanceof operatori true qiymatini qaytaradi:
const fruits = ["Banana", "Orange", "Apple"];
(fruits instanceof Array);
O‘zingiz sinab ko‘ring »
Ichki Arraylar va obyektlar
Obyektlardagi qiymatlar Arraylar, massivlardagi qiymatlar esa obyektlar bo‘lishi mumkin:
Misol
const myObj =
{
name: "John",
age: 30,
cars: [
{name:"Ford",
models:["Fiesta", "Focus", "Mustang"]},
{name:"BMW", models:["320", "X3", "X5"]},
{name:"Fiat", models:["500", "Panda"]}
]
}
Arraylar ichidagi massivlarga kirish uchun har bir Array uchun for-in siklidan foydalaning:
Misol
for (let i in myObj.cars) {
x += "<h1>" + myObj.cars[i].name
+ "</h1>";
for (let j in myObj.cars[i].models) {
x += myObj.cars[i].models[j];
}
}
O‘zingiz sinab ko‘ring »
Batafsil bilib oling:
W3Schools Pathfinder
Yutuqlaringizni kuzating – bu bepul!
