JavaScript Massivda Qidirish (Array Search)
Massiv ichidan kerakli qiymatni yoki uning indeksini topish uchun JavaScript bir nechta qulay metodlarni taqdim etadi.
1. indexOf() va lastIndexOf()
Ushbu metodlar massiv ichidan biror qiymatni qidiradi va uning indeksini (tartib raqamini) qaytaradi.
indexOf(qiymat): Qiymat birinchi marta uchragan joy indeksini qaytaradi.lastIndexOf(qiymat): Qiymat oxirgi marta uchragan joy indeksini qaytaradi.
Misol
const mevalar = ["Olma", "Apelsin", "Olma", "Mango"];
let birinchi = mevalar.indexOf("Olma"); // 0
let oxirgi = mevalar.lastIndexOf("Olma"); // 2Agar qidirilayotgan qiymat massivda bo'lmasa, bu metodlar -1 qaytaradi.
2. includes()
ES2016-da qo'shilgan bu metod massivda ma'lum bir qiymat bor yoki yo'qligini tekshiradi va true yoki false qaytaradi.
const mevalar = ["Banan", "Apelsin", "Olma"];
console.log(mevalar.includes("Olma")); // true
console.log(mevalar.includes("Kivi")); // false3. find() va findIndex()
Agar sizga oddiy qiymat emas, balki ma'lum bir shartga javob beradigan (masalan, 18 dan katta bo'lgan birinchi son) element kerak bo'lsa, ushbu metodlardan foydalanasiz:
find(): Shartga javob beradigan birinchi elementning o'zini (qiymatini) qaytaradi.findIndex(): Shartga javob beradigan birinchi elementning indeksini qaytaradi.
Misol
const sonlar = [4, 9, 16, 25, 29];
// 18 dan katta birinchi sonni topish
let topildi = sonlar.find(x => x > 18); // 25
let index = sonlar.findIndex(x => x > 18); // 34. findLast() va findLastIndex()
Bu metodlar ES2023-da qo'shilgan bo'lib, find() va findIndex() kabi ishlaydi, lekin qidirishni massivning oxiridan boshlaydi.
const temperaturalar = [27, 28, 30, 40, 42, 35, 30];
// Oxiridan boshlab 40 dan katta birinchi sonni topish
let oxirgiYuqori = temperaturalar.findLast(x => x > 40); // 42Xulosa
Qidiruv metodini tanlashda maqsadga qarang:
- Shunchaki indeks kerak bo'lsa:
indexOf() - Bor yoki yo'qligini bilish uchun:
includes() - Murakkab shart bo'yicha topish uchun:
find()yokifindIndex() - Oxiridan qidirish uchun:
lastIndexOf(),findLast()
