JavaScript Fundamentals

JavaScript’te Etkin Dizi Değer Kontrolü

Spread the love

JavaScript, bir dizinin belirli bir değeri içerip içermediğini belirlemek için birkaç verimli yol sunar. En uygun yaklaşım, ihtiyaçlarınıza bağlıdır—basit bir varlık kontrolü veya koşullar veya birden fazla eşleşme içeren daha karmaşık bir arama.

İçerik Tablosu

Basit Değer Kontrolleri için .includes() Kullanımı

.includes() yöntemi, bir dizinin belirli bir değeri içerip içermediğini kontrol etmek için en basit ve genellikle en verimli çözümü sunar. Değer varsa true, yoksa false döndürür.


const numbers = [1, 2, 3, 4, 5];
const target = 3;

if (numbers.includes(target)) {
  console.log(`Dizi ${target} değerini içeriyor`);
} else {
  console.log(`Dizi ${target} değerini içermiyor`);
}

Koşullu Aramalar için .find() Kullanımı

Tam değerinden ziyade belirli bir koşula göre bir öğe bulmanız gerektiğinde, .find() yöntemi idealdir. Sağlanan test fonksiyonunu karşılayan ilk öğeyi veya eşleşme bulunmazsa undefined döndürür.


const objects = [
  { id: 1, name: 'Apple' },
  { id: 2, name: 'Banana' },
  { id: 3, name: 'Orange' }
];

const foundObject = objects.find(obj => obj.name === 'Banana');

if (foundObject) {
  console.log('Bulundu:', foundObject);
} else {
  console.log('Nesne bulunamadı');
}

Birden Fazla Eşleşme için .filter() Kullanımı

Belirli bir koşulu karşılayan tüm öğeleri almak için .filter() yöntemini kullanın. Testi geçen tüm öğeleri içeren yeni bir dizi döndürür.


const numbers = [1, 2, 3, 2, 4, 2, 5];
const target = 2;

const filteredNumbers = numbers.filter(number => number === target);

if (filteredNumbers.length > 0) {
  console.log(`${target} değerinden ${filteredNumbers.length} adet bulundu`);
} else {
  console.log(`${target} değeri bulunamadı`);
}

Alternatif Bir Yaklaşım Olarak .indexOf() Kullanımı

.indexOf() yöntemi, bir değerin ilk oluşumunun indeksini döndürür. -1 değerinin döndürülmesi, değerin yok olduğu anlamına gelir. İşlevsel olsa da, .includes() genellikle basit varlık kontrolleri için daha iyi okunabilirlik sunar.


const numbers = [1, 2, 3, 4, 5];
const target = 3;

const index = numbers.indexOf(target);

if (index !== -1) {
  console.log(`${target} değeri ${index} indeksinde bulundu`);
} else {
  console.log(`${target} değeri bulunamadı`);
}

for Döngüsü Kullanımı (Az Önerilir)

for döngüsüyle manuel yineleme mümkündür, ancak genellikle yerleşik yöntemlerden daha az verimli ve daha az okunabilirdir. Onlardan kaçınmak için ikna edici bir nedeniniz olmadıkça yerleşik yöntemleri kullanmanız tavsiye edilir.


const numbers = [1, 2, 3, 4, 5];
const target = 3;
let found = false;

for (let i = 0; i < numbers.length; i++) {
  if (numbers[i] === target) {
    found = true;
    break;
  }
}

if (found) {
  console.log(`${target} bulundu`);
} else {
  console.log(`${target} bulunamadı`);
}

Performans Hususları

Basit varlık kontrolleri için, .includes() genellikle en verimli ve okunabilir olanıdır. .find() ve .filter(), koşullara dayalı aramalar veya tüm eşleşen öğeleri almak için en uygunudur. Yerleşik yöntemler performans için optimize edilmiş olduğundan, mutlak gerekli olmadıkça for döngülerinden kaçının.

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir