Klassik for tsikli
for tsikli sizga uchta qism bilan to‘liq nazorat beradi: boshlanish, shart va qadam.
for (let i = 0; i < 5; i++) {
console.log(i); // 0, 1, 2, 3, 4
}let i = 0boshida bir marta ishga tushadi.i < 5har bir aylanishdan oldin tekshiriladi; u false bo‘lganda tsikl to‘xtaydi.i++har bir aylanishdan keyin ishga tushadi.
Buni indeks kerak bo‘lganda yoki oddiy massiv bo‘ylab yurmayotganingizda (teskariga sanash, 2 tadan qadamlash va hokazo) ishlatasiz.
for...of — zamonaviy standart
Massivdagi har bir elementni olishni xohlaganingizda for...of toza ko‘rinadi, chunki indeksni hisobga olish shart emas:
const names = ["Ada", "Alan", "Grace"];
for (const name of names) {
console.log(name);
}Uni kalitlar bo‘ylab yuradigan for...in bilan aralashtirmang (u obyektlar uchun mo‘ljallangan, massivlar uchun emas). Massivlar uchun for...of ni afzal ko‘ring.
forEach — metod ko‘rinishidagi tsikl
Massivlarda forEach metodi bor bo‘lib, u har bir element uchun funksiyani bir marta chaqiradi. U chiroyli o‘qiladi, lekin undan erta break qilib chiqib keta olmaysiz:
["a", "b", "c"].forEach((item, index) => {
console.log(index, item); // 0 "a", 1 "b", 2 "c"
});forEach ni har bir element bilan biror ish qilmoqchi bo‘lganingizda (uni log qilish, sahifaga qo‘shish) ishlating. Agar erta break qilishingiz kerak bo‘lsa, buning o‘rniga for...of tsiklidan foydalaning.
map — yangi massivga aylantirish
Bu o‘rganish uchun eng muhimi. map har bir elementni funksiya orqali o‘tkazib yangi massiv quradi. Asli o‘zgarishsiz qoladi:
const nums = [1, 2, 3];
const doubled = nums.map((n) => n * 2);
// doubled: [2, 4, 6]
// nums: [1, 2, 3] — unchangedQachonki o‘zingizni bo‘sh massiv yaratib, tsikl aylantirib va o‘zgartirilgan qiymatni push qilayotgan holatda ko‘rsangiz, map buni bir qatorda bajaradi. U React’da hamma joyda uchraydi (ma’lumotlar ro‘yxatini elementlar ro‘yxatiga aylantirishda).
filter — faqat ba’zi elementlarni qoldirish
filter sizning funksiyangiz true qaytargan elementlarni saqlab, yangi massiv quradi:
const nums = [1, 2, 3, 4, 5];
const evens = nums.filter((n) => n % 2 === 0);
// evens: [2, 4]Uni elak deb tasavvur qiling: map har bir elementni o‘zgartiradi, filter esa ba’zi elementlarni tashlab yuboradi.
Tsikl tanlash
| Maqsad | Ishlating |
|---|---|
| Indeks yoki massiv bo‘lmagan hisob kerak | for |
| Har bir elementga tashrif buyurish | for...of |
| Har bir element uchun yon ta’sir bajarish | forEach |
| O‘zgartirilgan massiv qurish | map |
| Kichikroq massiv qurish | filter |
map va filter mutatsiya qilmaydi — ular yangi massivlar qaytaradi va aslini tegmasdan qoldiradi, bu esa ularni xavfsizroq qiladi va suhbatlarda sevimli qiladi.
Suhbat maslahatlari
- Qiymatlar uchun
for...of, obyekt kalitlari uchunfor...indan foydalaning — ularni aralashtirmang. - Ro‘yxatni o‘zgartirish uchun
mapga, uni toraytirish uchunfilterga murojaat qiling. - E’tibor bering,
map/filteryangi massivlar qaytaradi (mutatsiyasiz),forEachesa hech narsa qaytarmaydi. forEach/mapdanbreakqilib chiqa olmasligingizni aytib o‘ting — erta to‘xtashingiz mumkin bo‘lgandafor...ofdan foydalaning.
Muhokama
Hozircha izoh yo‘q
Muhokamada qatnashish uchun tizimga kiring.
KirishHozircha fikr yo‘q
Birinchi bo‘lib yozing: bu mavzuda nima yordam berdi — yoki nimani aniqroq tushuntirish kerak.