DEV Community

Cover image for JavaScript array metodlari.
Barkamol Valiev
Barkamol Valiev

Posted on

JavaScript array metodlari.

Ko'p gapirmay ishga o'tamiz. Ushbu postda javascript dasturlash tilidagi arraylarning metodlari bilan tanishamiz va unga doir masalalarni ishlaymiz.


Element qo'shish, o'zgartirish.

  • length()
  • push()
  • concat()

O'chirish.

  • pop()
  • shift()
  • splice()
  • delete array[i]

Qidirish.

  • find(function())
  • indexOf()

Tartiblash

  • sort() sonlar hamda stringlar uchun

Reverse

  • reverse()

Element qo'shish va o'zgartirish.

lenght metodi arrayning elementlar soni, yoki uzunligni topadi.
Shuni eslatib o'tish lozimki Javascriptda arraylarning turi object hisoblanadi. Agar siz avval c/c++, yoki java kabi tillarni o'rgangan bo'lsangiz bu biroz tushunarsiz tuyulishi mumkin. JavaScriptda arraylarning o'zi aslida data-type hisoblanadi, ya'ni c/c++ dagi arraylardan farqlanadi. JSda siz bir arrayning ichida turli tipdagi ma'lumotlarni saqlashingiz mumkin.

// Arrayning uzunligi, o'lchami
const array = ["nimadir", "kimdir", true, 55, 4.6];
console.log(`arrayning uzunligi ${array.length}`);
Enter fullscreen mode Exit fullscreen mode

Natija1


Arrayning oxiridan yangi element qo'shish.

Sizda savol tug'ilishi mumkin. constant o'zgaruvchining qiymatini o'zgartirish mumkinmi? Ha push() metodi orqali yangi element kiritmoqdamiz, lekin biz arrayga yangittan qiymat tenglamayappiz.

// push(), array oxiriga yangi element qo'shish
const array = ["nimadir", "kimdir", true, 55, 4.6];
array.push("yangi element");
console.log(`arrayning uzunligi: ${array} \n`);
Enter fullscreen mode Exit fullscreen mode

Natija2


Ikki arrayni birlashtirish(concatenate).

concat() metodi orqali ikki array birlashtiriladi.

// concat(), ikki arrayni birlashtirish
let array1 = ["nimadir", "kimdir", true, 55, 4.6];
let array2 = [8, 3, 9];
console.log("array1: " + array1, "\n", "array2: " + array2 + "\n");

let result = array1.concat(array2);
console.log(
  `Ikki array bitta yangi arrayga birlashtirildi: result [${result}] \n`
);
Enter fullscreen mode Exit fullscreen mode

Natija3


Arraydan elementni o'chirish.

JavaScriptda array elementlarini o'chirishning bir necha xil usullari mavjud.
pop() metodi array oxiridan bitta elementni o'chirishda ishlatiladi.

// pop(), arrayning oxiridan bitta element o'chiradi
let array1 = [6, "satr", true, 55, 4.6];
console.log(`\navval:  [${array1}]\n`);

array1.pop();
console.log(`keyin:  [${array1}]\n`);
Enter fullscreen mode Exit fullscreen mode

Natija4


shift() metodi array boshidan bitta elementni o'chiradi

// shift() Metodi

const array = [44, 5.3, 2, 14, 98, "text", "olma"];
console.log(`\navval: [${array}] \n`);

array.shift();
console.log(`keyin: 44 arrayda emas [${array}]\n`);
Enter fullscreen mode Exit fullscreen mode

Natija5


splice() metodi o'ziga xos, u faqat elementlarni o'chirish uchun ishlatilmaydi, balki ma'lumotlarni o'zgartirish ham mumkin. O'chirish maqsadida, metod o'ziga ikkita qiymat qabul qiladi.

  • birinchi: elementlarni o'chirishning boshlanish indexi.
  • ikkinchi: nechta element o'chirilishi.

Masalan: const array = [44, 5.3, 2, 14, 98, "text", "olma"]; mavjud. Biz 3-index, ya'ni 14 dan boshlab(14 ning o'zi ham o'chadi), 2 ta element o'chirmoqchimiz.

// splice() Metodi

const array = [44, 5.3, 2, 14, 98, "text", "olma"];
console.log(`\navval: [${array}] \n`);

array.splice(3, 2);

console.log(`keyin: 14 va 98 elementlari o'chdi [${array}]\n`);
Enter fullscreen mode Exit fullscreen mode

Natija6
O'zgartirish(almashtirish) maqsadida splice() quyidagicha ishlatiladi.

  1. boshlanish indeksi array.splice(3, ...)
  2. nechta element almashtirilishi array.splice(3, 2, ...)
  3. mos ravishda kiritilishi kerak bo'lgan yangi elementlar array.splice(3, 2, "yangi1", "yangi2")
// splice() Metodi

const array = [44, 5.3, 2, 14, 98, "text", "olma"];
console.log(`\navval: [${array}] \n`);

array.splice(3, 2, "yangi1", "yangi2");

console.log(`keyin: 14 va 98 elementlari almashtirildi [${array}]\n`);
Enter fullscreen mode Exit fullscreen mode

Natija7


delete array[i] metodi array elementni o'chirishning eng oson metodi. Bunda [i] o'rniga o'chirilishi kerak bo'lgan elementning indeksi yoziladi.

// delete Metodi

const array = [44, 5.3, 2, 14, 98, "text", "olma"];
console.log(`\navval: [${array}] \n`);

delete array[0];

console.log(`keyin: birinchi element o'chirildi [${array}]\n`);
Enter fullscreen mode Exit fullscreen mode

Natija8


Arraydan qidirish

find(function()) metodi arraydan berilgan elementni qidirishda ishlatiladi. Bu metodga qiymat sifatida funksiya yoziladi va funksiyaga qidirilayotgan element beriladi. Funksiya indeks qaytarmaydi, agar qidirilayotgan element arrayda mavjud bo'lsa, shu elementni return qiladi, aks holda undefined qaytaradi.

// find(function()) Metodi

const array = [44, 5.3, 2, 14, 98, "text", "olma"];
console.log(`\navval: [${array}] \n`);

// qidirmoqchi bo'lgan element
let element = 14;

let findVal = array.find(function (e) {
  return e === element;
});

console.log(`qidirilgan element: ${findVal}\n`);

//aks holatda
element = 55;

findVal = array.find((e) => {
  return e === element;
});
console.log(`qidirilgan element: ${findVal}\n`);
Enter fullscreen mode Exit fullscreen mode

Natija9


indexOf() metodi esa qidirilayotgan elementning indeksini qaytaradi.

// indexOf() Metodi

const array = [44, 5.3, 2, 14, 98, "text", "olma"];
console.log(`\navval: [${array}] \n`);

// qidirmoqchi bo'lgan element
let element = 14;

let findVal = array.indexOf(element);
console.log(`qidirilgan element indeksi: [${findVal}]\n`);
Enter fullscreen mode Exit fullscreen mode

Natija10


Tartiblash

sort() metodi, mana JavaScriptning "boshog'rig'i" shu yerdan boshlanadi. Bir qarashda sort() metodi oddiydek, aslida parda ortida boshqa jarayon ketadi. Defolt holatda sort() stringlarni tartiblaydi, lekin integer yoki numerik qiymat berilsa ham to'g'ri tartiblashi mumkin. Ammo JavaScript sonlarni xohlasa tartiblaydi, hoxlamasa yo'q(hazil albatta):)

// sort() Metodi

const array = ["zebra", "non", "futbol", "osmon", "kerak"];
console.log(`\navval: [${array}] \n`);

let sorted = array.sort();
console.log(`tartiblangan array: [${sorted}]\n`);
Enter fullscreen mode Exit fullscreen mode

Natija11


numerik qiymatlarda quyidagicha.

// sort() Metodi

const array = [45, 10, 30, 78, 61, 17];
console.log(`\navval: [${array}] \n`);

let sorted = array.sort();

console.log(`tartiblangan array: [${sorted}]\n`);
Enter fullscreen mode Exit fullscreen mode

Natija12


Xo'sh muammo nimada?

Deyishingiz mumkin, davom etamiz.

// sort() Metodi

const array = [45, 100, 30, 8, 61, 21];
console.log(`\navval: [${array}] \n`);

let sorted = array.sort();

console.log(`tartiblangan array: [${sorted}]\n`);
Enter fullscreen mode Exit fullscreen mode

Natija13

To'xtang, natijaga qarang, tartiblangan array: [100,1021,30,45,61,8] bu nimasi!?
JavaScript arrayni string sifatida tartiblaydi. Numerik, son berilsa ham uni ascii kodga o'tkazib, leksikografik, ya'ni string kabi tartiblayveradi. Bu esa xatolik keltirib chiqaradi. Masalada 100 eng songida, 30 esa 100dan avval turishi kerak edi. char sifatida 1 3dan avval turadi, shuning uchun xatolik kelib chiqaveradi(ascii jadvalga qarang!). Buni to'g'rilash uchun sort() metodiga function() beramiz.

// sort() Metodi

const array = [45, 100, 30, 8, 61, 21];
console.log(`\navval: [${array}] \n`);

let sorted = array.sort((a, b) => a - b);

console.log(`tartiblangan array: [${sorted}]\n`);
Enter fullscreen mode Exit fullscreen mode

array.sort((a, b) => a - b);funksiyasi massivdagi ikkita elementni solishtiradi va ularning tartibini aniqlaydi.

  • a va b: Bu massivdan ikki element bo'lib, ular taqqoslanadi. sort() metodi barcha elementlarni juft-juft qilib taqqoslaydi (masalan, a va b) va ularni taqqoslash funksiyasining natijasiga qarab joylashtiradi.
  • a - b: Bu ayirmalarni hisoblash orqali elementlarning tartibi belgilanadi:
  1. Agar a - b manfiy bo'lsa (ya'ni, a < b), a b dan oldin keladi.
  2. Agar a - b musbat bo'lsa (ya'ni, a > b), b a dan oldin keladi.
  3. Agar a - b nol bo'lsa (ya'ni, a === b), u holda ular o'zaro tartibda o'zgarmaydi.

Natija:

Natija14


Chappa qilish

reverse() metodi o'z nomi bilan berilgan arrayga teskari array hosil qiladi.

//reverse() Metodi

const array = [45, 100, 30, 8, 61, 1021];
console.log(`\navval: [${array}] \n`);

let reversed = array.reverse();

console.log(`reversed array: [${reversed}]\n`);
Enter fullscreen mode Exit fullscreen mode

Natija:

Natija15


Umid qilamanki post orqali JavaScript array metodlari bo'yicha bilimga ega bo'ldingiz, ushbu postni JSni o'rganayotgan yaqinlaringizga ulashing!

Takrorlash uchun masalalar:

1. Element qo'shish, o'zgartirish:

a. length()

Problem: Biror katta massivni tasavvur qiling, unda 1000 ta qiymat mavjud. Agar sizga faqat massivdagi elementlar sonini chiqarib berish kerak bo'lsa, qanday metoddan foydalanasiz? Massivda qanday o'zgarishlar bo'lsa ham, elementlar soni qanday o'zgaradi?
Problem: Agar sizga berilgan massivning oxiriga yangi 1000 ta element qo'shish kerak bo'lsa, massiv uzunligini aniqlang. Buning uchun qaysi metoddan foydalanish eng samarali hisoblanadi?

b. push()

Problem: Sizda har bir elementi bir xil bo'lgan massiv mavjud. Har safar yangi element qo'shganda, massivning oxiridagi elementni o'zgartirishingiz kerak. Bu operatsiyalarni qanday optimallashtirasiz?
Problem: Sizda tasks nomli massiv bor, uning ichida turli xil bajarilishi kerak bo'lgan vazifalar mavjud. Har safar yangi vazifa qo'shish va ro'yxatning oxiridagi vazifani yangilash kerak. Buni qanday amalga oshirasiz?

c. concat()

Problem: Ikki massivni birlashtirib, ularni bir xil formatda ko'rsatishingiz kerak. Birinchi massivda faqat oddiy sonlar mavjud, ikkinchisi esa faqat raqamli stringlardan iborat. Qanday qilib ulardan yangi massiv yaratib, barcha sonlarni raqamli formatda chiqarish mumkin?
Problem: Sizda ikkita massiv bor: biri foydalanuvchilar haqida ma'lumotlarni, ikkinchisi esa foydalanuvchilarning kirish tarixini o'z ichiga oladi. Bu massivlarni birlashtirishingiz kerak, ammo faqat foydalanuvchilarning faol holatdagi tarixlarini ko'rsatmoqchisiz. Buni qanday amalga oshirasiz?

2. O'chirish:

a. pop()

Problem: Sizda bir nechta foydalanuvchilar ro'yxati mavjud, va har safar oxirgi foydalanuvchini ro'yxatdan chiqarib yuborishingiz kerak. Ammo faqatgina so'nggi 3 kundagi faol foydalanuvchilarni saqlab qolishni xohlaysiz. Qanday qilib ularni boshqarishingiz mumkin?
Problem: Sizda books nomli massiv bor, unda turli kitoblar haqida ma'lumotlar mavjud. Har safar oxirgi kitobni o'chirib, yangi kitob qo'shishingiz kerak. Buni qanday tartibda amalga oshirasiz?

b. shift()

Problem: Biron bir navbatdagi jarayonni tasavvur qiling, unda foydalanuvchilar navbatni kutishmoqda. Har safar navbatdagi foydalanuvchini tizimdan chiqarib, yangi foydalanuvchini kiritishingiz kerak. Bu jarayonni qanday amalga oshirasiz?
Problem: Sizda foydalanuvchilarning kirish vaqtiga qarab tashkil etilgan massiv bor. Har safar eng birinchi foydalanuvchini ro'yxatdan chiqarib yuborishingiz kerak. Buni qanday amalga oshirasiz?

c. splice()

Problem: Sizda talabalar ro'yxati mavjud va har safar 3 ta talabaning ma'lumotlarini o'zgartirishingiz yoki ularni ro'yxatdan o'chirishingiz kerak. Bu jarayonni qanday tartibda amalga oshirasiz?
Problem: Sizda masalalar ro'yxati mavjud. Har safar bir nechta masalani olib tashlash va o'zgartirish kerak. Masalani o'zgartirishda, boshqa masalalar to'g'ri tartibda qolishi kerak. Buni qanday amalga oshirasiz?

d. delete array[i]

Problem: Sizda katta hajmdagi massiv mavjud, va biror elementni uning indeksiga qarab o'chirishingiz kerak. Elementni o'chirishda massivdagi boshqa elementlar qanday o'zgarishini hisobga olgan holda qanday amallarni bajarish kerak?
Problem: Sizda mijozlar ro'yxati bor va har bir mijozning o'ziga xos ID raqami bor. Berilgan ID bo'yicha mijozni ro'yxatdan o'chirish uchun qanday metoddan foydalanish mumkin?

3. Qidirish:

a. find(function())

Problem: Sizda foydalanuvchilar ro'yxati bor. Har bir foydalanuvchining ID raqami va ismi mavjud. Sizga faqat ismi "John" bo'lgan foydalanuvchining ma'lumotlarini olish kerak. Buni qanday amalga oshirasiz?
Problem: Sizda mahsulotlar ro'yxati mavjud, va har bir mahsulotning nomi va narxi bor. Faqat narxi 100 dan yuqori bo'lgan mahsulotni qidirishingiz kerak. Buni qanday amalga oshirasiz?

b. indexOf()

Problem: Sizda kitoblar ro'yxati mavjud, va har bir kitobning nomi va muallifi bor. Agar foydalanuvchi kitobni qidirsa, uning nomi bo'yicha qaysi indeksda ekanligini aniqlang.
Problem: Sizda maxsulotlar ro'yxati bor va har bir mahsulotga noyob identifikatsiya raqami berilgan. Agar foydalanuvchi maxsulotni qidirsa, uning ID raqamiga qarab uni topishingiz kerak. Bu qanday amalga oshiriladi?

4. Tartiblash:

a. sort()(sonlar uchun)

Problem: Sizda bir nechta o'quvchilarning baholari bor. Baholarni kichikdan kattaga qarab tartiblang, ammo baholar bir xil bo'lgan o'quvchilarni ism bo'yicha tartiblang.
Problem: Sizda mahsulotlarning narxlarini o'z ichiga olgan massiv bor. Siz narxlarni kamayish tartibida tartiblang, ammo narxlar bir xil bo'lsa, ularni sotilish sanasiga qarab tartiblang.

b. sort()(stringlar uchun)

Problem: Sizda mijozlarning ismlaridan iborat massiv mavjud. Ularni alifbo tartibida sortlashingiz kerak, ammo faqat bosh harfga qarab tartiblashtirish kerak.
Problem: Sizda kitoblarning nomlari bor. Siz barcha kitoblarni ulardagi so'zlarning uzunligiga qarab tartiblamoqchisiz. Buni qanday amalga oshirasiz?

5. Chappalash:

a. reverse()

Problem: Sizda bir nechta sonlardan iborat massiv mavjud. Siz bu massivni teskari tartibda chiqarib berishingiz kerak. Buning o'zgarishlarini qanday hisoblash mumkin?
Problem: Sizda matnlar ro'yxati mavjud va siz matnlarni teskari tartibda chiqarishni xohlaysiz. Agar matnlar bir xil uzunlikda bo'lsa, qanday natija olasiz?

xatolar va savollar

Top comments (0)