Skip to content

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

js
const mevalar = ["Olma", "Apelsin", "Olma", "Mango"];
let birinchi = mevalar.indexOf("Olma"); // 0
let oxirgi = mevalar.lastIndexOf("Olma"); // 2

Agar 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.

js
const mevalar = ["Banan", "Apelsin", "Olma"];
console.log(mevalar.includes("Olma")); // true
console.log(mevalar.includes("Kivi")); // false

3. 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

js
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); // 3

4. findLast() va findLastIndex() ​

Bu metodlar ES2023-da qo'shilgan bo'lib, find() va findIndex() kabi ishlaydi, lekin qidirishni massivning oxiridan boshlaydi.

js
const temperaturalar = [27, 28, 30, 40, 42, 35, 30];

// Oxiridan boshlab 40 dan katta birinchi sonni topish
let oxirgiYuqori = temperaturalar.findLast(x => x > 40); // 42

Xulosa ​

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() yoki findIndex()
  • Oxiridan qidirish uchun: lastIndexOf(), findLast()