O'zingizga mos kategoriyadagi kursni tanlang va o'qishni boshlang

JavaScriptda Array metodlari

JavaScriptda Array metodlari haqida

Javascriptda Array metodlari
JavaScriptda Array metodlari 3

1-qism

Avvalo, takrorlab olamiz, Array bu birnechta harxil qiymatlardan tashkil topgan ma’lum bir ketma ketlikda joylashgan obyekt. Misol uchun, [1, 2, «Josh», true] kabi.

Demak darsimizni o’zimiz uchun bitta array yaratib olishdan boshlaymiz.

let arr = [1,2,3,4];

Endi bugungi darsda o’rganadigan metodlar bilan qisqacha tanishib o’tamiz.

  1. push(…items)
  2. pop()
  3. shift()
  4. unshift(…items)
  5. slice(start, end)

1.push(…items)

Demak, bizda arr o’zgaruvchisi bor va u [1,2,3,4] qiymatini o’zida saqlayapti. Agar biz bu arrayga 5 ni qo’shmoqchi bo’lsak nima qilamiz ?

arr.push(5) // [1,2,3,4,5]

push() metodi orqali, har qanday array ning oxiriga har qancha qiymat qo’shishimiz mumkin. Biz hozirgina 5 raqamini arr ga qo’shdik. Agar 6,7,8 ni ham qo’shmoqchi bo’lsak, shunchaki:

arr.push(6,7,8); // [1,2,3,4,5,6,7,8]

desak kifoya. Eslatib o’taman, bu metod Arrayning oxiriga yangi qiymat qo’shadi!

2.pop()

Endi agar biz arrayning oxiridan bir qiymatni olib tashlamoqchi bo’lsak qanday yo’l tutamiz ?

arr = [1,2,3,4];

arr.pop(); // bu holatda arraydan 4 qiymati olib tashlandi. arr esa [1,2,3] ga teng.

Bu holatda, arrayning oxiridan bitta qiymatni olib tashladik.

3.shift()

Xo’sh, demak biz arrayni oxiridan qiymat olishni o’rgandik, agar arrayning boshidan olishimizga to’gri kelsa qanday yo’l tutamiz ? 🤨🤔

arr = [1,2,3,4];

arr.shift(); // arr qiymati endi [2,3,4]

bu metod orqali , arrayning boshidagi qiymatni olib tashlashimiz mumkin.

4.unshift()

Nima qoldi yana ? 🤔

Ha, Arrayning boshiga qiymat qo’shish. Biz oxiriga qo’shishni ko’rdik. Ammo boshigachi ?

arr = [3,4,5];

arr.unshift(1,2) // arr ning qiymati endi [1,2,3,4,5] ga teng

demak bu metod orqali biz arraylarning boshiga yangi qiymatlarni qo’shishimiz mumkin ekan.

5.slice(start, end)

Tasavvur qiling, Bizda [1,2,3,4,5,6,7] qiymatlarini o’zida saqlayotgan bir array bor.

Bizga berilgan vazifa shuki, boshqa array yaratib, bu birinchi arraydan faqatgina [3,4,5] qiymatlarini olib yangisiga berish. Ya’ni birinchi array ga tegmagan holda, uni ichidagi ayrim qiymatlarni olib boshqa arrayga joylashtirish. Nima qilamiz ? 🤨

slice() metodidan foydalanamiz. Qanday ?

Misol:
let first = [1,2,3,4,5,6,7];

let second = first.slice(2,5) // second = [3,4,5];

Bu yerda slice() metodi birinchi arrayda 2 dan 5 chi indeksgacha bo’lgan barcha qiymatlarni ikkinchi arrayga ko’chirib olib beradi. Birinchi array ga ta’sir ko’rsatmagan holda.

Agar biz , 2-indeksdan boshlab qolgan barcha qiymatni olmoqchi bo’lsakchi ?

Ya’ni, [3,4,5,6,7] qiymatini. Bu vaziyatda slice metodiga shunchaki ikkinchi argumentni bermaymiz xolos. Ya’ni qayergachaligini aytmaymiz. Metod esa barchasini bizga olib beradi.

P.S: Indekslar 0 dan boshlab sanaladi.

2-qism

2-qismda quyidagi 5 ta metodlar bilan tanishamiz:

  1. splice()
  2. concat()
  3. forEach()
  4. indexOf()/lastIndexOf()
  5. includes()

splice(start, deleteCount, …elementsToReplace)

Demak, splice() metodidan boshlaymiz.

Bu metod vazifalari:

  1. Arraydan biz xohlagancha miqdorda element(lar)ni o’chirib tashlaydi.
  2. O’chirilgan element(lar)ni o’rniga yangi elementlarni qo’shadi.

Argumentlari:

  1. start – bu qaysi indeksdan boshlab elementlarni o’chirishni belgilaydi. Misol uchun,birinchi argumentga 2 sonini bersak , metod arrayning ikkinchi indeksidan boshlab elementlarni o’chirishni boshlaydi.
  2. deleteCount – berilgan startdan ya’ni indeksdan boshlab nechta element o’chirish kerakligini aniqlaydi. Misol uchun, splice(2,2) deb yozsak, ikkinchi indeksdan boshlab 2 ta elementni o’chirish kerak degani.
  3. …elementsToReplace – bu argument ixtiyoriy, agar biz o’chirgan elementlar o’rniga yangi elementlarni joylashtirmoqchi bo’lsak ishlatamiz.

Endi misollarga o’tamiz:

let arr = [1,2,3,4,5,6];

arr.splice(2,2) // arr = [1,2,5,6];

Bu yerda arraydan [3,4] ni o’chirib tashladik.

let arr = [1,2,3,4,5,6];

arr.splice(2,1, «uch») // arr =  [1, 2, «uch», 4, 5, 6]

bu yerda esa ikkinchi indeksda turgan 3 sonini o’chirib o’rniga «uch» ni yozdik.

Harxil holatlar bilan o’zingiz sinab ko’rishingiz mumkin.

Biz esa keyingi metodga o’tamiz. 😉

concat(…items)

Biror bir arrayga boshqa arrayni qo’shib yangi array yaratmoqchi bo’lsangiz concat() metodini ishlatsangiz bo’ladi. Misol uchun:

let arr = [1,2,3];

let arr2 = [4,5,6];

let newArr = arr.concat(arr2); // newArr = [1,2,3,4,5,6]

forEach(item, index, array)

Looplar haqida ma’lumotingiz bo’lsa, arraylarni sikl bo’ylab yurishimiz uchun tahminan quyidagicha koddan foydalanar edik:

for(let i = 0; i <= arr.length; i++){

console.log(arr[i])

}

yoki, for ..of , for..in lar ham misol bo’ladi.

Ammo, Arraylar ustida osonroq ishlashimiz uchun forEach() metodi ham borligini bilarmidingiz.

let arr = [1,2,3];


arr.forEach((item, index, array) => {

  console.log(«item: » + item); // item: 1, item: 2 , item: 3

  console.log(«index: » + index); // index: 0, index: 1, index: 2

  console.log(«array: » + array); // array: [1,2,3], …

})

mana shu usulda ishlashimiz mumkin.

indexOf(item)/lastIndexOf(item)

Agar array ichidagi biror bir qiymatni indeksini bilishimiz kerak bo’lib qolsa , indexOf() metodidan foydalanamiz. Misol:

let arr = [5, 8, 3, 6, 3];

arr.indexOf(3); // 2

ko’rib turganimizdek 3 qiymatining indeksi 2 .

arr.lastIndexOf(3) // 4

lastIndexOf() esa ushbu berilgan qiymatning oxirgi joylashgan indeksini qaytaradi.

includes(item)

Agar biror bir qiymat ushbu arrayda bor yoki yo’qligini bilmoqchi bo’lsak includes() metodidan foydalanamiz. Misol:

let arr = [5, 8, 3, 6, 3];

arr.includes(5) // true

arr.includes(12) // false

3-qism

Bu qismda 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.😉⚔️

find(fn)/findIndex(fn)

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(fn)

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]

map(fn)

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.

sort(fn)

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]

split(splitter)

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.

join()

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 😄

reverse()

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]

some(fn)

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(fn)

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

reduce( fn(acc, cur), initialVal)

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) // javobi 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.)

Obuna bo’lishni va ulashishni unutmang.

@JoshDeveloper

@Mohirdev

Comment List

Leave a comment