HTML CSS JAVASCRIPT ANGULAR

JavaScript Dizi Yineleme (Tekrarlama)


Dizi yineleme (tekrarlama) metodları, dizideki tüm elemanlarda bir döngü yardımıyla gezinmek için kullanılır.


forEach() Metodu

forEach() metodu, sırayla tüm dizi elemanları için bir fonksiyon çağırır ve onu her bir eleman için uygular.

Örnek

var yazi = "";
var sayilar = [4, 34, 19, 1, 333, 81, 26, 0];
sayilar.forEach(yinelemeFonksiyonu);

function yinelemeFonksiyonu(deger, sayi, dizi) {
  yazi = yazi + deger + "<br>"; 
}

Kendin Dene »

Fonksiyon varsayılan olarak 3 parametre kabul ediyor.

  • Elemanın değeri
  • Elemanın index numarası
  • Dizinin kendisi

Yukarıdaki örnek yalnızca ilk parametreyi kullanıyor. Bu yüzden bu kod şu şekilde tekrar yazılabilir:

Örnek

var yazi = "";
var sayilar = [4, 34, 19, 1, 333, 81, 26, 0];
sayilar.forEach(yinelemeFonksiyonu);

function yinelemeFonksiyonu(deger) {
  yazi = yazi + deger + "<br>"; 
}

Kendin Dene »

forEach() metodu, IE8 ve öncesi hariç tüm tarayıcılarda desteklenmektedir (Opera, Firefox, Chrome, Safari, IE9+).


map() Metodu

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:

Örnek

var sayilar1 = [4, 34, 19, 1, 333, 81, 26, 0];
var sayilar2 = sayilar1.map(yinelemeFonksiyonu);

function yinelemeFonksiyonu(deger, index, dizi) {
  return deger + 10; 
}

Kendin Dene »

Fonksiyon varsayılan olarak 3 parametre kabul ediyor.

  • Elemanın değeri
  • Elemanın index numarası
  • Dizinin kendisi

Yukarıdaki örnek yalnızca ilk parametreyi kullanıyor. Bu yüzden bu kod şu şekilde tekrar yazılabilir:

Örnek

var sayilar1 = [4, 34, 19, 1, 333, 81, 26, 0];
var sayilar2 = sayilar1.map(yinelemeFonksiyonu);

function yinelemeFonksiyonu(deger) {
  return deger + 10; 
}

Kendin Dene »

map() metodu, IE8 ve öncesi hariç tüm tarayıcılarda desteklenmektedir (Opera, Firefox, Chrome, Safari, IE9+).


filter() Metodu

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:

Örnek

var sayilar1 = [4, 34, 19, 1, 333, 81, 26, 0];
var sayilar2 = sayilar1.filter(yinelemeFonksiyonu);

function yinelemeFonksiyonu(deger) {
  return deger % 2; 
}

Kendin Dene »

Fonksiyon varsayılan olarak 3 parametre kabul ediyor.

  • Elemanın değeri
  • Elemanın index numarası
  • Dizinin kendisi

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

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:

Örnek

var sayilar = [4, 34, 19, 1, 333, 81, 26, 0];
var toplamSayilar = sayilar.reduce(yinelemeFonksiyonu);

function yinelemeFonksiyonu(toplam, deger, sayi, dizi) {
  return toplam + deger;
}

Kendin Dene »

Fonksiyon varsayılan olarak 4 parametre kabul ediyor.

  • Toplam değeri
  • Elemanın değeri
  • Elemanın index numarası
  • Dizinin kendisi

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:

Örnek

var sayilar = [4, 34, 19, 1, 333, 81, 26, 0];
var toplamSayilar = sayilar.reduce(yinelemeFonksiyonu, 2);

function yinelemeFonksiyonu(toplam, deger) {
  return toplam + deger;
}

Kendin Dene »

reduce() metodu, IE8 ve öncesi hariç tüm tarayıcılarda desteklenmektedir (Opera, Firefox, Chrome, Safari, IE9+).



reduceRight() Metodu

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:

Örnek

var sayilar = [4, 34, 19, 1, 333, 81, 26, 0];
var toplamSayilar = sayilar.reduceRight(yinelemeFonksiyonu);

function yinelemeFonksiyonu(toplam, deger) {
  return toplam + deger;
}

Kendin Dene »

Fonksiyon varsayılan olarak 4 parametre kabul ediyor.

  • Toplam değeri
  • Elemanın değeri
  • Elemanın index numarası
  • Dizinin kendisi

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

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:

Örnek

var sayilar = [4, 34, 19, 1, 333, 81, 26, 0];
var tekMi = sayilar.every(yinelemeFonksiyonu);

function yinelemeFonksiyonu(deger) {
  return deger % 2;
}

Kendin Dene »

Fonksiyon varsayılan olarak 3 parametre kabul ediyor.

  • Elemanın değeri
  • Elemanın index numarası
  • Dizinin kendisi

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

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:

Örnek

var sayilar = [4, 34, 19, 1, 333, 81, 26, 0];
var tekMi = sayilar.some(yinelemeFonksiyonu);

function yinelemeFonksiyonu(deger) {
  return deger % 2;
}

Kendin Dene »

Fonksiyon varsayılan olarak 3 parametre kabul ediyor.

  • Elemanın değeri
  • Elemanın index numarası
  • Dizinin kendisi

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

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:

Örnek

var sayilar = [4, 34, 19, 1, 333, 81, 26, 0];
var sayi = sayilar.indexOf(333);

Kendin Dene »

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

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:

Örnek

var sayilar = [333, 34, 333, 1, 333, 81, 26, 0];
var sayi = sayilar.lastIndexOf(333);

Kendin Dene »

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

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:

Örnek

var sayilar = [4, 34, 19, 1, 333, 81, 26, 0];
var sayi = sayilar.find(yinelemeFonksiyonu);

function yinelemeFonksiyonu(deger) {
  return deger % 2;
}

Kendin Dene »

Fonksiyon varsayılan olarak 3 parametre kabul ediyor.

  • Elemanın değeri
  • Elemanın index numarası
  • Dizinin kendisi

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

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:

Örnek

var sayilar = [4, 34, 19, 1, 333, 81, 26, 0];
var sayi = sayilar.findIndex(yinelemeFonksiyonu);

function yinelemeFonksiyonu(deger) {
  return deger % 2; 
}

Kendin Dene »

Fonksiyon varsayılan olarak 3 parametre kabul ediyor.

  • Elemanın değeri
  • Elemanın index numarası
  • Dizinin kendisi

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.


Anlamadığınız bir konu mu var?

Konu ile ilgili sorunuzu uzmanim.net'e sorabilirsiniz: uzmanim.net'e sor!