JavaScriptda Array metodlar #3

JavaScriptda Array metodlar #3

Josh*

Assalaamu alaykum.

Vanihoyat array metodlarini oxirgi bo'limiga yetib keldik.

Bu maqolada juda muhim array metodlari bilan tanishamiz. Demak boshladik.

Bismillah.


Demak o'tgan darslarimizda o'rgangan metodlari ro'yhati bilan tanishib o'tamiz:

  1. push(...items)
  2. pop()
  3. shift()
  4. unshift(...items)
  5. slice(start, end)
  6. splice()
  7. concat()
  8. forEach()
  9. indexOf()/lastIndexOf()
  10. includes()

Bugun esa quyidagi 10 ta metodlar bilan tanishamiz InshaAlloh:

  1. find()/findIndex()
  2. filter()
  3. map()
  4. sort()
  5. split()
  6. join()
  7. reverse()
  8. some()
  9. every()
  10. reduce()

Xo'sh, nishonlar aniqlandi, endi hujumga o'tsak bo'ladi.๐Ÿ˜‰โš”๏ธ


Array ichidan aynan qaysidir qiymatni topishimiz kerak bo'lsa ushbu ikki metodni ishlatsak bo'ladi.

Misol uchun mani yoshim 19 da va mani yoshimdan katta bo'lgan birinchi yoshni arraydan topishim kerak:

let myAge = 19;
let ages = [12,15,22,20,25];
let older = ages.find(age => age > myAge);
console.log(older) // 22

find() metodi array bo'ylab yurib chiqyapti. Har yurganda funksiya(buyerda arrow function) ishlayapti va uning age argumenti array ning hozirgi yurayotgan elementiga teng bo'lyapti. Misol uchun birinchi bo'lib 12. So'ng , funksiya ichida true yoki false qaytaradigan kod yozilgan. False qaytsa funksiya keyingi elementga o'tadi. Agar true qaytsa funksiya to'xtaydi va javob sifatida yurayotgan hozirgi elementni qaytaradi.

Yurish ilk elementdan boshlanadi. Mana yurish jarayoni:

age > myAge // 12 > 19 , false
age > myAge // 15 > 19 , false
age > myAge // 22 > 19, true, 22 javob sifatida qaytariladi va older = 22;


findIndex() ham huddi shunday ishlaydi. Faqatgina tepada biz qiymatlar bilan ishlagan bo'lsak, bu metod qiymatlarning indekslari bilan ishlaydi. O'zingiz sinab ko'ring har bir metodlarni.


filter() metodi ham tepadagi find() bilan deyarli birhil ishlaydi. Ammo bitta farqi, find() metodi birinchi topilgan elementni qaytaradi va to'xtaydi. filter() esa barcha topilgan javoblarni filterlab qaytaradi. Misol uchun tepadagi koddagi arrayda 19 dan katta boshqa yoshlar ham bor edi. Misolga o'tamiz:

let myAge = 19;
let ages = [12,15,22,20,25];
let olders = ages.filter(age => age > myAge);
console.log(olders) // [22,20,25]


Va nihoyat biz uchun eng kerakli yana bir array metodi bilan tanishamiz.

Qiyinlashtirib o'tirmayman, oddiy qilib tushuntiraman :

map() metodi bu - array elementlari ustida biz istagan amalni qilib , yangi array sifatida javobni qaytaradigan metod.

Misol uchun keling tepadagi yosh arrayidagi yoshlarni 2 ga ko'paytirib chiqamiz:

let ages = [12,15,22,20,25];
let doubledAges = ages.map((age, index, array) => age *= 2);
console.log(doubledAges) // ย [24, 30, 44, 40, 50]


P.S: bu yerda index va array ixtiyoriy argumentlar, index bu ayni damdagi qiymatni indeksini qaytaradi, array esa ishlatilayotgan arrayni.

Bu map() ga oddiy misol. Bundan tashqari map orqali boshqa xoxlagan ishingizni qilishingiz mumkin.

Demak, map() - bu arrayni elementlari bo'ylab yurib chiqib, o'zi xoxlagan amalni qilib, oxirida natijani yangi array sifatida qaytaradi.


Bu metod haqida gapirsak gap ko'p ๐Ÿ˜„

Ammo, men ushbu maqolada sort() ni qanday ishlatishni o'rgataman holos, qanday ishlashini emas. Chunki, uning qanday ishlashini tushuntirish ko'p vaqt oladi. Agar juda qiziqsangiz guruhdan so'rang, ovozli xabar orqali tushuntirib beraman. Yoki quyidagi linkka kiring : link

Demak, sort() metodi bu - arraydagi elementlarni joylashuvini o'zgartirishda kerak bo'ladi. Shunchaki misollar qoldiraman:

let arr = ["c", "d", "b", "a"];
arr.sort(); // arr = ย ["a", "b", "c", "d"];
arr.sort((a, b) => a + b); // ย ["c", "d", "b", "a"]

// endi sonlar bilan

let ages = [12,15,22,20,25];
ages.sort((a, b) => a - b); // ages = ย [12, 15, 20, 22, 25]
ages.sort((a, b) => b - a); // ages = ย [25, 22, 20, 15, 12]


Demak tasavvur qiling bizda quyidagicha tekst string bor. "Josh, John, Steve" .

Ammo har bir ismni ustida ishlash imkonimiz yo'q. Yagona chora bu stringni ismlar arrayiga olish. So'ng ular ustida amallarni qilishimiz mumkin:

split() metodi bu - string tekstni arrayga o'girib beradi. Unga argument bergan holda, stringni qaysi joyidan kesib olib alohida array elementiga ajratishni berishimiz mumkin.

Misollar:

let namesStr = "Josh, John, Steve" ;
let namesArr = namesStr.split(",");
console.log(namesArr); // ["Josh", "John", "Steve"];

Savol #1: agar argumentga bo'sh string bersak nima bo'ladi ?

o'zingiz javobini toping.

Huddi tepadagi split() metodining teskari varianti bu join();

join() metodi bu - arraylarni bitta string tekst ko'rinishiga olib keladi. Misol uchun:

let namesArr = ["Josh", "John", "Steve"];
let namesStr = namesArr.join(','); // "Josh, John, Steve"

Endi keling , kichik mashq qilamiz:

Hozir shartni aytaman, o'qishingiz bilan o'zingiz bajarishga harakat qiling. Men esa davom etaman.

Shart shuki: ismlar stringi bor, "Josh, John, Steve", biz esa bu ismlarni olib barchasiga "jon" qo'shib , qayta string qilib qaytarishimiz kerak.

Kutiladigan natija: "Joshjon, Johnjon, Stevejon"

Boshlang.

Biz boshladik:

let namesStr = 'Josh, John, Steve';
let result = namesStr.split(',').map((name) => name += 'jon').join(',');
console.log(result);

Tugadi ๐Ÿ˜„


Ba'zan arrayni teskarisiga aylantirib qo'yishimiz kerak bo'ladi.

reverse() metodi bu - arrayni qiymatlari joylashuvini teskariga aylantirib beradi. Misol:

let nums = [5,4,3,2,1] ;
nums.reverse();
console.log(nums) // [1, 2, 3, 4, 5]

Arrayning ichida biz qidirayotgan element bor yoki yo'qligini bilishimiz uchun ishlatiladigan metodlardan biri bu some();

some() metodi bu - arrayning ichida biror qiymat bor yoki yo'qligini tekshiradi, bor bo'lsa true, yo'q bo'lsa false qaytadi. Misol:

let nums = [5,4,3,2,1] ;
nums.some(num => num > 6); // false, 6 dan katta element yo'q
nums.some(num => num > 4) // true, 5 raqami 4 dan katta


every() metodi bu - Arrayning ichidagi barcha element biz bergan shartga mosmi yoki yo'qmi degan savolga javob beradi. Huddi some() dek. Faqat farqi, barcha elementlar shartga mos kelishi shart. some() da esa shart emas, bitta donasi o'tsa ham bo'ladi.

Misol:

let nums = [2,3,4] ;
nums.some(num => num > 3); // false, barcha element 3 dan katta emas.
nums.some(num => num > 1) // true, barcha element 1 dan katta


Deyarli eng qiyin metodga yetib keldik.

reduce() metodi bu - arraydagi qiymatlardan foydalanib ma'lum bir yagona qiymat hosil qilishimiz uchun ishlatiladi.

Keling tushunishimiz uchun bir kod yozaman, reduce ga aloqasi yo'q bo'lgan. Biz arrayda berilgan sonlarni ja'mi qiymatini topishimiz kerak, kodimiz tahminan bunday bo'ladi :

let nums = [10, 55, 64, 63];
let jamiQiymat = 0; // boshlanishiga nol qiymati olib for(){...} ning ichida bu qiymatni oshiramiz
for(let i = 0; i < nums.length; i++){
jamiQiymat += nums[i];
}
console.log(jamiQiymat); // javobi 192

Mana javobni oldik. Endi huddi shu kodlarni yaxshilab yodlab oling va o'qishni davom eting.

Reduce orqali shu misolni yechamiz:


let nums = [10, 55, 64, 63];
let result = nums.reduce((jami, hozirgiEl) => jami += hozirgiEl, 0);
console.log(result) // javob 192


Mana sizga kutilgan javob. Endi taqqoslab chiqing tepadagi kod bilan. Bu ham deyarli birhil ishni qilayotganini ko'rasiz.

Bu yerda jami degan argument accumulator deyiladi. Ya'ni barcha qiymatlarni yig'ib boruvchi. hozirgiEl bu ayni damda yurilayotgan array elementi. ikkinchi argumentdagi 0 bu jamining boshlang'ich qiymati.

Bu oddiy misol edi, reduce ga ko'plab qiyin va murakkab misollar mavjud. Lekin ularni bu maqolada aytib o'tirishimdan foyda yo'q. Asosiysi ishlashini tushunib oling. Keyin osonlashadi hammasi. InshaaAlloh

Shunaqa gaplar ๐Ÿ˜‚.


Shu bilan arraylarni ham tugatdik.)

O'zingiz ham shug'ullanib ko'ring bu metodlar bilan.

Kamchiliklar bo'lsa uzr ๐Ÿ˜‰


Yanada ko'proq maqolalar va postlar uchun kanalimizga obuna bo'ling.

Kanalimiz: @JoshDeveloper

Report Page