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.indexOf
, Array.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.indexOf
, Array.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()
.
- Kullanın
- Elementin kendisini almanız gerekiyor mu?
find()
Tek bir öğe veyafilter()
birden çok öğe için kullanın .
- Öğenin dizinini bulmanız gerekiyor mu?
indexOf()
Bir ilkelfindIndex()
aramak veya bir işlevle arama yapmak için kullanın.
Başka makalelerde görüşmek üzere...