Umumiy ko'rinish
Arrays qiymatlarning tartiblangan ro'yxatlarini ushlab turadi, looplar esa har bir qiymatga navbatma-navbat tashrif buyurishga imkon beradi. Deyarli har bir kichik kodlash masalasi quyidagilarning aralashmasidir: array bo'ylab yurish, biror narsa qurish, ba'zi elementlarni saqlash yoki bittasini topish. Keling, keng tarqalgan looplar va shakllarni raqamlar ro'yxati bilan ko'rib chiqamiz.
const nums = [4, 8, 15, 16, 23];Loop qilishning uch usuli
Klassik for loop index (hisoblagich) ishlatadi. U eng moslashuvchan — u qayerdan boshlanishini, to'xtashini va qadam tashlashini siz boshqarasiz.
for (let i = 0; i < nums.length; i++) {
console.log(nums[i]);
}for...of looplari sizga har bir qiymatni to'g'ridan-to'g'ri beradi, index kerak emas. Pozitsiya sizni qiziqtirmaganda tozaroq.
for (const n of nums) {
console.log(n);
}forEach — bu har bir element uchun bir marta function ishga tushiradigan array method. Qulay, lekin unda for loop'dagi kabi erta break qilib chiqa olmasligingizni yodda tuting.
nums.forEach((n) => console.log(n));Jamini to'plash
Hamma narsani qo'shish uchun loop tashqarisida ishlaydigan o'zgaruvchini saqlang va uni ichida yangilang.
let total = 0;
for (const n of nums) {
total += n;
}
// total === 66Yangi array'ga filtrlash
Faqat ba'zi elementlarni saqlash uchun bo'sh array yarating va xohlaganlaringizni push qiling. (O'rnatilgan filter method buni siz uchun qiladi, lekin uni qo'lda bajarish g'oyani ko'rsatadi.)
const bigNums = [];
for (const n of nums) {
if (n > 10) bigNums.push(n);
}
// [15, 16, 23]Elementni topish
Birinchi mos kelganini topish uchun loop qiling va unga duch kelgan zahoti return (yoki break) qiling — qidirishda davom etish shart emas.
function firstOver(list, limit) {
for (const n of list) {
if (n > limit) return n;
}
return null; // nothing matched
}
firstOver(nums, 10); // 15Murakkablik haqida bir og'iz so'z
Time complexity input o'sishi bilan ish qanchalik o'sishini tasvirlaydi. Array bo'ylab bir marta loop qilish O(n) — "order n" — bu array o'lchami ikki barobar ortsa, ish ham taxminan ikki barobar ortadi degani. Yuqoridagi barcha misollar O(n): bitta o'tish. Loop ichidagi loop'dan ehtiyot bo'ling, u O(n²) bo'ladi — ish ancha tezroq o'sadi — va imkoni bo'lganda undan qochish odatda arziydi.
Suhbat maslahatlari
- Har bir loopga qachon murojaat qilishni biling: index yoki erta
breakkerak bo'lgandafor, toza qiymat iteratsiyasi uchunfor...of. - Murakkablikni oddiy qilib ayting: "n ta element bo'ylab bitta loop O(n)."
- Butun array'ni skanerlash o'rniga javobingizni topgan zahoti return yoki break qiling.
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.