JavaScript kullanarak Dizi elemanlarının toplamı hesaplamak için birden fazla yöntem kullanabilirsiniz. İster javaScript dilinin gücünden faydalanıp nesneler nesneler ile toplam yaptırabilir isterseniz de yeni bir javaScript öğrenicisi gibi algoritma kurarak toplam yaptırabilirsiniz. Bu yazıda sizlere bir dizideki değerleri toplamının bir kaç farklı yöntemini göstereceğim. Umarım beğenirsiniz.
Basit yöntem: Dizi öğelerine bir dizin numarası ile erişilerek basit bir yöntem kullanır ve JavaScript kullanarak bir dizinin değerlerinin toplamını bulmak için döngüyü kolaylıkla yapılmış olur. Bu yöntem algoritma olarak gayet basit ve anlaşılırdır.
Örnek 1: Bu örnek, JavaScript kullanarak Dizi öğelerinin toplamını bulmak için basit bir yöntem kullanır.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | <script> var dizi = [10, -50, 25, 45, 102]; var toplam = 0; for (var i = 0; i < dizi.length; i++) { if (isNaN(dizi[i])) { continue; } toplam += Number(dizi[i]); } window.alert(toplam); </script> |
Basit yöntem 2: Başka bir basit yöntem ise dizi elemanlarını toplamak için yine dizi öğeleri üzerinde hareket eden for-of deyimini kullanmaktır. Yine her öğe üzerinde hareket edip, sayısal değeri varsa toplama gerçekleştirilir.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | <script> var dizi = [10, -50, 25, 45, 102]; var toplam = 0; for(var oge of dizi){ if (isNaN(oge)) { continue; } toplam += Number(oge); } window.alert(toplam); </script> |
Yöntem 3: Yöntemin zorluk derecesini biraz daha arttıralım. Bu sefer javascript fonksiyonlarını kullanalım. Bir dizideki tüm öğleri okumak için forEach deyimi kullanılabiliyor. forEach kullanarak tüm sayıları toplamak mümkün hale getirebiliriz.
1 2 3 4 5 6 7 8 9 10 11 12 | <script> var dizi = [10, -50, 25, 45, 102]; var toplam = 0; dizi.forEach(function(element){ toplam+=Number(element); }); window.alert(toplam); </script> |
arrow fonksiyon ile…
1 2 3 4 5 6 7 8 | <script> var dizi = [10, -50, 25, 45, 102]; var toplam = 0; dizi.forEach((element)=>toplam+=Number(element)); window.alert(toplam); </script> |
Yöntem 4: Yine forEach gibi ama bu map fonksiyonu ile de toplamak mümkündür.
1 2 3 4 5 6 7 8 | <script> var dizi = [10, -50, 25, 45, 102]; var toplam = 0; dizi.map((element)=>toplam+=Number(element)); window.alert(toplam); </script> |
Zor Yöntem 5: Yukarıdaki kodlarda hata yapma eğilimi fazladır. Şimdi gelelim javaScriptin gücünden faydalanan kodları yazalım.
1 2 3 4 5 6 7 8 9 10 | <script> const dizi = [10, -50, 25, 45, 102]; // iki sayının toplamı için gerekli basit toplama fonksiyonu const topla = (a, b) => a + b </script> |
Unutulmaması gereken ilk şey, sayıları bir değişkenden const değerine değiştirmemizdir. Sayıların sabit olduğundan emin olmak istiyoruz; değişmeyecek. const ve let hakkında daha fazla bilgi için Mozilla’nın sitesine bakabilirsiniz.
Sonra, topla adında bir fonksiyon eklediğimizi fark edeceksiniz. Bu işlev sadece iki sayı alır ve bunları bir araya getirir. Ardından dizimizi toplayan segmenti yazacağız.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | <script> const dizi = [10, -50, 25, 45, 102]; // iki sayının toplamı için gerekli basit toplama fonksiyonu const topla = (a, b) => a + b // recude fonksiyonunu toplama için kullanın const toplam = dizi.reduce(topla) window.alert(toplam); </script> |
reduce() yöntemi, dizinin her bir öğesinde (sağladığınız) bir azaltma işlevi yürütür, bu da tek bir çıktı değerine neden olur.