JS massivlar

Misol

const cars = ["Saab", "Volvo", "BMW"];
O‘zingiz sinab ko‘ring »

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.

ULASHISH

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.

Misol

const cars = ["Saab", "Volvo", "BMW"];
O‘zingiz sinab ko‘ring »

Bo‘sh joylar va qator ko‘chirishlar muhim emas. E’lon bir nechta qatorga cho‘zilishi mumkin:

Misol

const cars = [
  "Saab",
  "Volvo",
  "BMW"
];
O‘zingiz sinab ko‘ring »

Bundan tashqari, bo‘sh Array yaratishingiz va keyinroq elementlarni taqdim etishingiz mumkin:

Misol

const cars = [];
cars[0]= "Saab";
cars[1]= "Volvo";
cars[2]= "BMW";
O‘zingiz sinab ko‘ring »

Yangi JavaScript kalit so‘zidan foydalanish

Quyidagi misol, shuningdek, Array yaratadi va unga qiymatlarni tayinlaydi:

Misol

const cars = new Array("Saab", "Volvo", "BMW");
O‘zingiz sinab ko‘ring »

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";

Misol

const cars = ["Saab", "Volvo", "BMW"];
cars[0] = "Opel";
O‘zingiz sinab ko‘ring »

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:

Banana,Orange,Apple,Mango
O‘zingiz sinab ko‘ring »

Massivni ko‘rsatish

JavaScript-da to‘liq Array Array nomiga murojaat qilib ko‘rsatilishi mumkin:

Misol

const cars = ["Saab", "Volvo", "BMW"];

let text = cars;
O‘zingiz sinab ko‘ring »

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:

Array:

const person = ["John", "Doe", 46];
O‘zingiz sinab ko‘ring »

Obyektlar uning "a’zolari" ga kirish uchun nomlardan foydalanadi. Bu misolda, person.firstName Jon qaytaradi:

Obyekt:

const person = {firstName:"John", lastName:"Doe", age:46};
O‘zingiz sinab ko‘ring »

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:

JavaScript Array konstruktori


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 »

W3Schools Pathfinder

Yutuqlaringizni kuzating – bu bepul!