Dizi yineleme (tekrarlama) metodları, dizideki tüm elemanlarda bir döngü yardımıyla gezinmek için kullanılır.
forEach()
metodu, sırayla tüm dizi elemanları için bir fonksiyon çağırır ve onu her bir eleman için uygular.
var yazi = "";
var sayilar = [4, 34, 19, 1, 333, 81, 26, 0];
sayilar.forEach(yinelemeFonksiyonu);
function yinelemeFonksiyonu(deger, sayi, dizi) {
yazi = yazi + deger + "<br>";
}
Fonksiyon varsayılan olarak 3 parametre kabul ediyor.
Yukarıdaki örnek yalnızca ilk parametreyi kullanıyor. Bu yüzden bu kod şu şekilde tekrar yazılabilir:
var yazi = "";
var sayilar = [4, 34, 19, 1, 333, 81, 26, 0];
sayilar.forEach(yinelemeFonksiyonu);
function yinelemeFonksiyonu(deger) {
yazi = yazi + deger + "<br>";
}
forEach()
metodu, IE8 ve öncesi hariç tüm tarayıcılarda desteklenmektedir (Opera, Firefox, Chrome, Safari, IE9+).
map()
metodu, sırayla tüm dizi elemanlarında bir fonksiyon çalıştırır ve geriye bir dizi döndürür.
map()
metodu, değeri olmayan dizi elemanları için fonksiyon çalıştırmaz.
map()
metodu, varolan dizide değişiklik yapmaz, yeni bir dizi oluşturur.
Bu örnekte, map()
metodu ile dizideki tüm elemanlara 10 eklenip yeni bir dizi oluşturuluyor:
var sayilar1 = [4, 34, 19, 1, 333, 81, 26, 0];
var sayilar2 = sayilar1.map(yinelemeFonksiyonu);
function yinelemeFonksiyonu(deger, index, dizi) {
return deger + 10;
}
Fonksiyon varsayılan olarak 3 parametre kabul ediyor.
Yukarıdaki örnek yalnızca ilk parametreyi kullanıyor. Bu yüzden bu kod şu şekilde tekrar yazılabilir:
var sayilar1 = [4, 34, 19, 1, 333, 81, 26, 0];
var sayilar2 = sayilar1.map(yinelemeFonksiyonu);
function yinelemeFonksiyonu(deger) {
return deger + 10;
}
map()
metodu, IE8 ve öncesi hariç tüm tarayıcılarda desteklenmektedir (Opera, Firefox, Chrome, Safari, IE9+).
filter()
metodu, sırayla tüm dizi elemanlarını bir testten geçirir ve testi geçen tüm dizi elemanlarından yeni bir dizi oluşturur.
Bu örnekte, 2'ye bölünme testi uygulanıyor ve bölünemeyenler yani tek sayılar bir dizide toplanıyor:
var sayilar1 = [4, 34, 19, 1, 333, 81, 26, 0];
var sayilar2 = sayilar1.filter(yinelemeFonksiyonu);
function yinelemeFonksiyonu(deger) {
return deger % 2;
}
Fonksiyon varsayılan olarak 3 parametre kabul ediyor.
Yukarıdaki örnek yalnızca ilk parametreyi kullanıyor. Bu yüzden diğer parametreler kullanılmamıştır.
filter()
metodu, IE8 ve öncesi hariç tüm tarayıcılarda desteklenmektedir (Opera, Firefox, Chrome, Safari, IE9+).
reduce()
metodu, sırayla tüm dizi elemanları için bir fonksiyon çağırır, ve tüm dizi elemanları için tek bir değer oluşturup döndürür.
reduce()
metodu, dizi elemanları için soldan sağa doğru çalışır. Yani fonksiyonu önce sıfır index numaralı eleman için, sonra bir, sonra iki, ... çağırır.
reduce()
metodu uygulandığı dizide bir değişiklik yapmaz.
Bu örnek, dizideki tüm elemanların toplamını bulup yeni bir değere dönüştürüyor:
var sayilar = [4, 34, 19, 1, 333, 81, 26, 0];
var toplamSayilar = sayilar.reduce(yinelemeFonksiyonu);
function yinelemeFonksiyonu(toplam, deger, sayi, dizi) {
return toplam + deger;
}
Fonksiyon varsayılan olarak 4 parametre kabul ediyor.
Yukarıdaki örnek yalnızca ilk iki parametreyi kullanıyor. Bu yüzden aynı kod, sayi ve dizi parametreleri kullanılmadan da yazılabilir.
reduce()
metodu, parametre olarak bir başlangıç değeri de kabul edebiliyor.
Bu örnekte, sayıları toplamaya 2'den başlanıyor ve diğer sayıların tamamı 2 sayısı ile toplanıyor:
var sayilar = [4, 34, 19, 1, 333, 81, 26, 0];
var toplamSayilar = sayilar.reduce(yinelemeFonksiyonu, 2);
function yinelemeFonksiyonu(toplam, deger) {
return toplam + deger;
}
reduce()
metodu, IE8 ve öncesi hariç tüm tarayıcılarda desteklenmektedir (Opera, Firefox, Chrome, Safari, IE9+).
reduceRight()
metodu, sırayla tüm dizi elemanları için bir fonksiyon çağırır, ve tüm dizi elemanları için tek bir değer oluşturup döndürür.
reduceRight()
metodu, dizi elemanları için sağdan sola doğru çalışır. Yani fonksiyonu önce en yüksek index numaralı eleman için, sonra bir aşağısı, sonra bir aşağısı, ... çağırır.
reduceRight()
metodu uygulandığı dizide bir değişiklik yapmaz.
Bu örnek, dizideki tüm elemanların toplamını bulup yeni bir değere dönüştürüyor:
var sayilar = [4, 34, 19, 1, 333, 81, 26, 0];
var toplamSayilar = sayilar.reduceRight(yinelemeFonksiyonu);
function yinelemeFonksiyonu(toplam, deger) {
return toplam + deger;
}
Fonksiyon varsayılan olarak 4 parametre kabul ediyor.
Yukarıdaki örnek yalnızca ilk iki parametreyi kullanıyor. Bu yüzden aynı kod, sayi ve dizi parametreleri kullanılmadan da yazılabilir.
reduceRight()
metodu, IE8 ve öncesi hariç tüm tarayıcılarda desteklenmektedir (Opera, Firefox, Chrome, Safari, IE9+).
every()
metodu, dizideki tüm elemanların verilen testi geçip geçemediğini kontrol eder.
every()
metodu geriye true (doğru) ya da false (yanlış) değerlerini döndürür.
Bu örnekte, dizideki tüm elemanların tek sayı olup olmadığı kontrol ediliyor:
var sayilar = [4, 34, 19, 1, 333, 81, 26, 0];
var tekMi = sayilar.every(yinelemeFonksiyonu);
function yinelemeFonksiyonu(deger) {
return deger % 2;
}
Fonksiyon varsayılan olarak 3 parametre kabul ediyor.
Yukarıdaki örnek yalnızca ilk parametreyi kullanıyor. Bu yüzden diğer parametreler kullanılmamıştır.
every()
metodu, IE8 ve öncesi hariç tüm tarayıcılarda desteklenmektedir (Opera, Firefox, Chrome, Safari, IE9+).
some()
metodu, dizideki bazı elemanların verilen testi geçip geçemediğini kontrol eder.
some()
metodu geriye true (doğru) ya da false (yanlış) değerlerini döndürür.
Bu örnekte, dizideki bazı elemanların tek sayı olup olmadığı kontrol ediliyor:
var sayilar = [4, 34, 19, 1, 333, 81, 26, 0];
var tekMi = sayilar.some(yinelemeFonksiyonu);
function yinelemeFonksiyonu(deger) {
return deger % 2;
}
Fonksiyon varsayılan olarak 3 parametre kabul ediyor.
Yukarıdaki örnek yalnızca ilk parametreyi kullanıyor. Bu yüzden diğer parametreler kullanılmamıştır.
some()
metodu, IE8 ve öncesi hariç tüm tarayıcılarda desteklenmektedir (Opera, Firefox, Chrome, Safari, IE9+).
indexOf()
metodu, dizide verilen eleman değerini arar ve eğer varsa geriye elemanın index numarasını döndürür.
Eğer eleman o dizide bulunamazsa, fonksiyon geriye -1 değerini döndürür.
Bu örnekte, dizide "333" sayısı aranıyor:
indexOf()
metodu, IE8 ve öncesi hariç tüm tarayıcılarda desteklenmektedir (Opera, Firefox, Chrome, Safari, IE9+).
indexOf()
metodu, parametre olarak değer ve başlangıç numarası kabul eder.
Değer parametresi zorunludur. Dizide aranacak olan değeri belirtir.
Başlangıç numarası ise zorunlu değildir. Dizide hangi index numarasında aramaya başlanacağını belirtir.
Eğer aranan değer dizide birden fazla kere bulunursa, indexOf()
metodu geriye ilk bulunan değerin pozisyonunu döndürür.
lastIndexOf()
metodu, dizide verilen eleman değerini arar ve eğer varsa geriye son bulunan elemanın index numarasını döndürür.
Eğer eleman o dizide bulunamazsa, fonksiyon geriye -1 değerini döndürür.
Bu örnekte, dizide "333" sayısı aranıyor:
var sayilar = [333, 34, 333, 1, 333, 81, 26, 0];
var sayi = sayilar.lastIndexOf(333);
lastIndexOf()
metodu, IE8 ve öncesi hariç tüm tarayıcılarda desteklenmektedir (Opera, Firefox, Chrome, Safari, IE9+).
lastIndexOf()
metodu, parametre olarak değer ve başlangıç numarası kabul eder.
Değer parametresi zorunludur. Dizide aranacak olan değeri belirtir.
Başlangıç numarası ise zorunlu değildir. Dizide hangi index numarasında aramaya başlanacağını belirtir.
Eğer aranan değer dizide birden fazla kere bulunursa, lastIndexOf()
metodu geriye son bulunan değerin pozisyonunu döndürür.
find()
metodu, dizideki elemanların verilen testi geçip geçemediğini kontrol eder ve geriye testi geçen ilk elemanın değerini döndürür.
Bu örnekte, fonksiyon geriye ilk tek sayının değerini döndürüyor:
var sayilar = [4, 34, 19, 1, 333, 81, 26, 0];
var sayi = sayilar.find(yinelemeFonksiyonu);
function yinelemeFonksiyonu(deger) {
return deger % 2;
}
Fonksiyon varsayılan olarak 3 parametre kabul ediyor.
Yukarıdaki örnek yalnızca ilk parametreyi kullanıyor. Bu yüzden diğer parametreler kullanılmamıştır.
find()
metodu, eski tarayıcılar tarafından desteklenmemektedir. Chrome 45, IE 12, Firefox 25, Safari 8, Opera 32 sürümlerinden sonra tam olarak desteklenmeye başlamıştır.
findIndex()
metodu, dizideki elemanların verilen testi geçip geçemediğini kontrol eder ve geriye testi geçen ilk elemanın index numarasını döndürür.
Bu örnekte, fonksiyon geriye ilk tek sayının index numarasını döndürüyor:
var sayilar = [4, 34, 19, 1, 333, 81, 26, 0];
var sayi = sayilar.findIndex(yinelemeFonksiyonu);
function yinelemeFonksiyonu(deger) {
return deger % 2;
}
Fonksiyon varsayılan olarak 3 parametre kabul ediyor.
Yukarıdaki örnek yalnızca ilk parametreyi kullanıyor. Bu yüzden diğer parametreler kullanılmamıştır.
findIndex()
metodu, eski tarayıcılar tarafından desteklenmemektedir. Chrome 45, IE 12, Firefox 25, Safari 8, Opera 32 sürümlerinden sonra tam olarak desteklenmeye başlamıştır.