JavaScript massiv metodlari (map, filter, reduce)

Massiv ustidan for bilan yurish mumkin, lekin JavaScript’da bu ishlar uchun tayyor metodlar bor. Ular kodni qisqa va maqsadi ko’rinib turadigan qiladi.

map — har elementni o’zgartirish

JavaScript

map har element ustida funksiyani bajaradi va natijalardan yangi massiv yasaydi. Asl massiv o’zgarmaydi.

Xuddi shuni for bilan yozsak uzunroq bo’lardi:

const chegirmali = [];
for (const narx of narxlar) {
  chegirmali.push(narx * 0.9);
}

map bir qatorda va nomi maqsadni aytib turibdi.

filter — shartga mos elementlarni ajratish

JavaScript

Funksiya true qaytargan elementlar yangi massivga tushadi.

reduce — bitta qiymatga yig’ish

JavaScript

reduce ikki narsa oladi: callback va boshlang’ich qiymat (bu yerda 0). Callback har qadamda ikki argument oladi:

  • yigindi — hozirgacha to’plangan natija;
  • narx — navbatdagi element.

Qadamma-qadam: 0+8000 = 80008000+12000 = 2000020000+15000 = 35000.

find — birinchi mosini topish

JavaScript

find bitta element qaytaradi (filter — massiv). Topilmasa undefined.

some va every

JavaScript
  • somekamida bittasi shartga mos kelsa true;
  • everyhammasi mos kelsa true.

sort — tartiblash

JavaScript

Metodlarni zanjirlash

Metodlar massiv qaytargani uchun ketma-ket ulanadi:

JavaScript

O’qilishi: qimmatlarini ajrat → narxlarini ol → yig’.

Amaliy mashq

Ma’lumotni qayta ishlang:

  1. Sonlar massivini yarating va map bilan har birini kvadratga ko’taring;
  2. filter bilan faqat juftlarini ajrating;
  3. reduce bilan yig’indisini toping;
  4. uchalasini bitta zanjirda birlashtiring;
  5. sort bilan kamayish tartibida tartiblang.

4-qadamdan keyin natijani for sikli bilan qayta yozing — qaysi biri o’qishga qulay?

Qisqacha xulosa

  • map — har elementni o’zgartirib yangi massiv yasaydi.
  • filter — shartga mos elementlarni ajratadi.
  • reduce — massivni bitta qiymatga yig’adi.
  • find bitta element, some/every mantiqiy qiymat qaytaradi.
  • sort asl massivni o’zgartiradi va sonlar uchun (a, b) => a - b talab qiladi.

Keyingi darsda obyektlar — bog’liq ma’lumotni bir joyda saqlashni ko’ramiz.

Bu dars foydali bo'ldimi?

marta ko'rildi