• 0

JavaScript'te Dizilerde Arama Yapmanın Dört Yöntemi

3 hafta önce , Okuma süresi 2 dakika.

JavaScript'te Dizilerde Arama Yapmanın Dört Yöntemi
JavaScript'te, genellikle Dizilerde depolanan verilerle çalışacaksınız. Yaygın bir görev, belirli arama kriterlerini karşılayan bir değer (veya değerler) içerip içermediğini bulmak için dizide arama yapmaktır. Eldeki göreve bağlı olarak, onay için bir boole değeri, dizideki değerin konumu için bir dizin veya tüm arama sonuçlarını içeren ayrı bir dizi ilginizi çekebilir.

ECMAScript 6'dan önce, muhtemelen for dizideki tüm öğeleri yinelemek ve her öğe üzerinde işlemler gerçekleştirmek için bir döngü kullanırdınız. Şimdi, bir dizideki değerleri aramak için bazı genel görevleri çözen birkaç yerleşik yardımcı program yöntemi vardır.

Bu makalede, Array.includes()Array.indexOfArray.find(), ve Array.filter yöntemlerini ele alacağız.

includes() Kullanımı : 

includes()Yöntemi, bir değer bir dizi ya da mevcutsa true ya da false sonucu döner.

Bu temel sözdizimidir:

arr.includes(valueToFind[, fromIndex]);

İlk parametre, yani valueToFind dizide eşleşecek değerdir. İkinci parametre, fromIndex ise isteğe bağlıdır ve karşılaştırmaların başlayacağı dizini belirler. Varsayılan 0, yani tüm dizi aranır.

Şimdi gerçek bir dizide arama yapalım; 

const alligatorFacts = ["thick scales", 80, "4 foot tail", "rounded snout", 80];

Ardından includes()dizenin dizide olup olmadığını kontrol etmek için kullanın "thick scales":

alligatorFacts.includes("thick scales");

Dizide bulunduğu için bu kod  true olarak geri dönecektir .

indexOf() Kullanımı :

indexOf()Yöntemi, bir dizideki bir değerin birinci indeks döndürür. Eşleşme yoksa, yöntem -1 olarak geri döner.

Bu temel sözdizimidir:

arr.indexOf(searchElement[, fromIndex])

Şimdi gerçek bir dizide arama yapalım; 

const alligatorFacts = ["thick scales", 80, "4 foot tail", "rounded snout", 80];

Ardından "rounded snout"  dizinini indexOf() ile ilk dizinini döndürmek için kullanın :

alligatorFacts.indexOf("rounded snout");

Dizenin dizini "rounded snout"4- döndürülür.

Not: İlk sonucu aramıyorsanız, lastIndexOf()  yöntemini kullanmak isteyebilirsiniz. Bu yöntem  indexOf ile benzerdir, ancak dizinin son dizininden başlayıp geriye doğru çalışan ilk eşleşmeyi bulacaktır.

find() Kullanımı :

find()Yöntemi, bir fonksiyon koşullarına uygun dizideki ilk değer geri gönderir. Eşleşme yoksa, yöntem undefined olarak geri döner.

Bu temel sözdizimidir:

arr.find(callback(element[, index[, array]])[, thisArg])

Şimdi gerçek bir dizide arama yapalım;

const alligatorFacts = ["thick scales", 80, "4 foot tail", "rounded snout"];

Ardından find() yöntemini , 13 karakterden daha kısa olan ilk değeri döndürmek için kullanalım:

alligatorFacts.find(el => el.length < 13);

filter() Kullanımı : 

filter() Yöntemi, bir fonksiyon koşullarına uygun dizideki tüm değerleri yeni bir dizi döner. Eşleşme yoksa, yöntem boş bir dizi döndürür.

Bu temel sözdizimidir:

let newArray = arr.filter(callback(currentValue[, index[, array]]) {
  // return element for newArray, if true
}[, thisArg]);

Şimdi gerçek bir dizide arama yapalım;

const alligatorFacts = ["thick scales", 80, "4 foot tail", "rounded snout", 80];

Ardından filter() yöntemini, tüm değerleri 80'e eşit olanları döndürmek için kullanalım:

alligatorFacts.filter(el => el === 80);

Dizideki iki 80 değer bu koşulu karşılar. Bu kod yeni bir dizi döndürür: [80, 80].

filter() birden çok arama sonucu değeri istediğiniz durumlarda kullanışlıdır.

Sonuç

Bu makalede, öğrendik Array.includes()Array.indexOfArray.find(), ve Array.filter. Her biri, kullanım durumunuzun ihtiyaçlarına bir çözüm sağlayabilir.

  • Sadece var olup olmadığını bilmeniz mi gerekiyor?
    • Kullanın includes().
  • Elementin kendisini almanız gerekiyor mu?
    • find()Tek bir öğe veya filter()birden çok öğe için kullanın .
  • Öğenin dizinini bulmanız gerekiyor mu?
    • indexOf()Bir ilkel findIndex()aramak veya bir işlevle arama yapmak için kullanın.

Başka makalelerde görüşmek üzere...

#javascript