JavaScript de dizi elemanlarını bir döngüye alıp sırasıyla işlem yapıp sonuçlarını yeni bir diziye atamak için map metodunu kullanabiliriz. Bu yazımda map metodunun kullanımını örnekler üzerinden anlatacağım.
JavaScript map Kullanımı
Array.map() metodu ile bir dizinin tüm elemanlarını döngüye alabiliriz. Map metodu orjinal diziyi değiştirmez. Kullanımı şu şekildedir:
1 2 3 4 5 6 7 8 9 10 11 |
<script> diziAdi.map(function (value, index, array) { // Çalıştırılacak Kodlar }); </script> |
Burada function içerisinde 3 parametre tanımlayabiliyoruz. Bunlar:
- value : Bu parametre zorunludur ve dizi elemanlarının değerini tutar.
- index : Bu parametre isteğe bağlıdır ve dizi elemanlarının indeks numarasını tutar.
- array : Bu parametre isteğe bağlıdır ve dizinin kendisini tutar.
Şimdi bir dizi tanımlayalım ve map metodu ile dizi elemanları içerisinde dönelim.
Her seferinde Math.sqrt() metodu ile dizi elemanlarının karekökünü alıp yeni oluşturduğumuz karekok dizisine atayalım.
Döngü sona erdiğinde hem sayilar dizisini hem de karekok dizisini console ekranına yazdıralım.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
<script> var sayilar = [64,36,100,25,256]; var karekok = []; sayilar.map(function (value, index) { karekok[index] = Math.sqrt(value); }); console.log("sayilar dizisi : " + sayilar); console.log("karekok dizisi : " + karekok); </script> |
Çıktısı :
sayilar dizisi : 64,36,100,25,256
karekok dizisi : 8,6,10,5,16
Yukarıda yapmış olduğumuz örneği farklı şekillerde de yazabilirdik.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
<script> var sayilar = [64,36,100,25,256]; var karekok = []; karekok = sayilar.map(function (value) { return Math.sqrt(value); }); console.log("sayilar dizisi : " + sayilar); console.log("karekok dizisi : " + karekok); </script> |
Çıktısı :
sayilar dizisi : 64,36,100,25,256
karekok dizisi : 8,6,10,5,16
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
<script> var sayilar = [64,36,100,25,256]; var karekok = sayilar.map(myFunction); function myFunction(value){ return Math.sqrt(value); } console.log("sayilar dizisi : " + sayilar); console.log("karekok dizisi : " + karekok); </script> |
Çıktısı :
sayilar dizisi : 64,36,100,25,256
karekok dizisi : 8,6,10,5,16
Gördüğünüz gibi kodlarımızı 3 farklı şekilde yazdık ve her defasında aynı çıktıyı elde ettik.
⇒ Array.map() metodu Internet Explorer 8 veya öncesi hariç tüm tarayıcılarda desteklenir.
Umarım “JavaScript map Kullanımı” başlıklı yazım sizin için faydalı olmuştur.
Şu yazılar da ilginizi çekebilir.
JavaScript Diziler (Dizi Oluşturma, Dizi Elemanlarına Erişme..)
JavaScript Dizi Metodları (pop, push, shift, unshift, slice..)
JavaScript Dizilerde Sıralama – En Küçük veya En Büyük Değeri Bulma
Yeni bir yazımda görüşmek üzere.