{"id":538,"date":"2024-03-10T23:15:16","date_gmt":"2024-03-10T20:15:16","guid":{"rendered":"https:\/\/mudosdigital.com\/tr\/?p=538"},"modified":"2024-03-10T23:15:18","modified_gmt":"2024-03-10T20:15:18","slug":"javascript-reduce-metodu-nedir-ve-nasil-kullanilir","status":"publish","type":"post","link":"https:\/\/mudosdigital.com\/tr\/javascript-reduce-metodu-nedir-ve-nasil-kullanilir\/","title":{"rendered":"JavaScript reduce() metodu nedir ve nas\u0131l kullan\u0131l\u0131r?"},"content":{"rendered":"\n<p>JavaScript&#8217;in <code>reduce()<\/code> metodu, diziler \u00fczerinde \u00e7al\u0131\u015fan g\u00fc\u00e7l\u00fc ve esnek bir fonksiyondur. Bu metod, bir dizideki t\u00fcm elemanlar\u0131 tek bir de\u011fere indirgemek i\u00e7in kullan\u0131l\u0131r. K\u0131sacas\u0131, <code>reduce()<\/code> fonksiyonu bir dizi \u00fczerinden ge\u00e7er ve her eleman i\u00e7in bir geri \u00e7a\u011f\u0131r\u0131m fonksiyonu uygular. Bu i\u015flem sonucunda, birikimli bir sonu\u00e7 elde edilir. Bu birikimli sonu\u00e7, dizi elemanlar\u0131n\u0131n toplam\u0131, \u00e7arp\u0131m\u0131 veya herhangi bir \u00f6zelle\u015ftirilmi\u015f birle\u015ftirme i\u015flemi olabilir.<\/p>\n\n\n\n<p>JavaScript&#8217;te <code>reduce()<\/code> fonksiyonunun g\u00fcc\u00fcn\u00fc ke\u015ffetmek, bir sihirbaz\u0131n asas\u0131n\u0131 ke\u015ffetmeye benzer. Ba\u015flang\u0131\u00e7ta basit g\u00f6r\u00fcnebilir; ancak derinlere dald\u0131k\u00e7a, bu metodun sa\u011flad\u0131\u011f\u0131 esneklik ve g\u00fc\u00e7 kar\u015f\u0131s\u0131nda \u015fa\u015f\u0131rmak m\u00fcmk\u00fcnd\u00fcr. \u0130ster bir dizi say\u0131n\u0131n toplam\u0131n\u0131 hesaplay\u0131n, ister kompleks veri yap\u0131lar\u0131n\u0131 d\u00f6n\u00fc\u015ft\u00fcr\u00fcn, <code>reduce()<\/code> metodunun sundu\u011fu imkanlar olduk\u00e7a geni\u015ftir.<\/p>\n\n\n\n<p><code>reduce()<\/code> metodu, iki parametre al\u0131r: Bir geri \u00e7a\u011f\u0131r\u0131m fonksiyonu ve opsiyonel olarak, birikimli de\u011ferin ba\u015flang\u0131\u00e7 de\u011feri. Geri \u00e7a\u011f\u0131r\u0131m fonksiyonu d\u00f6rt parametre al\u0131r; birikimli de\u011fer (accumulator), \u015fu anki de\u011fer (currentValue), \u015fu anki indeks (currentIndex) ve dizi (array) kendisi. \u0130\u015fte bu esneklik, <code>reduce()<\/code> metodunu JavaScript&#8217;in en g\u00fc\u00e7l\u00fc ara\u00e7lar\u0131ndan biri yapar.<\/p>\n\n\n\n<p>Bu metodun kullan\u0131m\u0131 \u00f6zellikle fonksiyonel programlama yakla\u015f\u0131m\u0131nda yayg\u0131nd\u0131r. \u00c7\u00fcnk\u00fc <code>reduce()<\/code>, veriler \u00fczerinde d\u00f6n\u00fc\u015f\u00fcmler ve hesaplamalar yaparken yan etkileri en aza indirgeyen saf fonksiyonlar kullanmay\u0131 te\u015fvik eder. Dolay\u0131s\u0131yla, <code>reduce()<\/code> fonksiyonunu etkin bir \u015fekilde kullanarak, kodunuzun okunabilirli\u011fini ve bak\u0131m\u0131n\u0131 kolayla\u015ft\u0131rabilir, yan etkileri azaltabilir ve daha \u00f6ng\u00f6r\u00fclebilir sonu\u00e7lar elde edebilirsiniz.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Kullan\u0131m senaryolar\u0131<\/h2>\n\n\n\n<p>Elbette, JavaScript&#8217;in <code>reduce()<\/code> metodunun kullan\u0131m senaryolar\u0131n\u0131 \u00e7e\u015fitli \u00f6rneklerle ele alal\u0131m:<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Toplam Hesaplama<\/h3>\n\n\n\n<p>Dizideki say\u0131lar\u0131n toplam\u0131n\u0131 hesaplamak i\u00e7in en yayg\u0131n senaryolardan biridir. Bu, <code>reduce()<\/code> metodunun temel kullan\u0131m \u00f6rneklerinden birini olu\u015fturur.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>const sayilar = &#91;1, 2, 3, 4, 5];\nconst toplam = sayilar.reduce((acc, currentValue) =&gt; acc + currentValue, 0);\nconsole.log(toplam); \/\/ 15<\/code><\/pre>\n\n\n\n<p>Bu \u00f6rnekte, <code>reduce()<\/code> metodu dizideki t\u00fcm say\u0131lar\u0131 toplar ve sonucu d\u00f6nd\u00fcr\u00fcr.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Objelerdeki De\u011ferleri Toplama<\/h3>\n\n\n\n<p>Bir dizi i\u00e7erisindeki objelerde belirli bir anahtara ait de\u011ferlerin toplam\u0131n\u0131 hesaplama i\u015flemidir.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>const urunler = &#91;\n  { adi: 'Elma', fiyat: 10, adet: 3 },\n  { adi: 'Muz', fiyat: 5, adet: 2 },\n  { adi: 'Portakal', fiyat: 8, adet: 4 }\n];\n\nconst toplamFiyat = urunler.reduce((acc, urun) =&gt; acc + (urun.fiyat * urun.adet), 0);\nconsole.log(toplamFiyat); \/\/ 74<\/code><\/pre>\n\n\n\n<p>Bu senaryoda, her bir \u00fcr\u00fcn i\u00e7in toplam fiyat hesaplan\u0131r ve t\u00fcm \u00fcr\u00fcnlerin toplam fiyat\u0131 elde edilir.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Benzersiz De\u011ferlerin Filtrelenmesi<\/h3>\n\n\n\n<p>Bir dizide tekrar eden de\u011ferleri kald\u0131rarak benzersiz de\u011ferlerin bir listesini olu\u015fturmak i\u00e7in kullan\u0131labilir.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>const sayilar = &#91;1, 2, 2, 3, 4, 4, 5];\nconst benzersizSayilar = sayilar.reduce((acc, currentValue) =&gt; {\n  if (!acc.includes(currentValue)) {\n    acc.push(currentValue);\n  }\n  return acc;\n}, &#91;]);\n\nconsole.log(benzersizSayilar); \/\/ &#91;1, 2, 3, 4, 5]<\/code><\/pre>\n\n\n\n<p>Bu \u00f6rnekte, <code>reduce()<\/code> metodu tekrar eden de\u011ferleri filtreler ve yaln\u0131zca benzersiz de\u011ferleri bir dizi olarak d\u00f6nd\u00fcr\u00fcr.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Anahtar De\u011fer \u00c7iftlerinin Grupland\u0131r\u0131lmas\u0131<\/h3>\n\n\n\n<p>Dizideki objeleri, belirli bir anahtara g\u00f6re grupland\u0131rmak i\u00e7in kullan\u0131l\u0131r. \u00d6rne\u011fin, ki\u015filerin ya\u015flar\u0131na g\u00f6re grupland\u0131r\u0131lmas\u0131:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>const kisiler = &#91;\n  { ad: 'Ahmet', yas: 20 },\n  { ad: 'Mehmet', yas: 30 },\n  { ad: 'Ay\u015fe', yas: 20 }\n];\n\nconst yasGruplari = kisiler.reduce((acc, kisi) =&gt; {\n  if (!acc&#91;kisi.yas]) {\n    acc&#91;kisi.yas] = &#91;];\n  }\n  acc&#91;kisi.yas].push(kisi);\n  return acc;\n}, {});\n\nconsole.log(yasGruplari);\n\/*\n{\n  \"20\": &#91;{ ad: 'Ahmet', yas: 20 }, { ad: 'Ay\u015fe', yas: 20 }],\n  \"30\": &#91;{ ad: 'Mehmet', yas: 30 }]\n}\n*\/<\/code><\/pre>\n\n\n\n<p>Bu \u00f6rnekte, ki\u015filer ya\u015flar\u0131na g\u00f6re grupland\u0131r\u0131lm\u0131\u015ft\u0131r.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Dizi Elemanlar\u0131n\u0131n \u00c7arp\u0131m\u0131<\/h3>\n\n\n\n<p>Dizideki t\u00fcm elemanlar\u0131n \u00e7arp\u0131m\u0131n\u0131 hesaplamak, <code>reduce()<\/code> metodunun ba\u015fka bir kullan\u0131m\u0131d\u0131r.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>const sayilar = &#91;1, 2, 3, 4];\nconst carpim = sayilar.reduce((acc, currentValue) =&gt; acc * currentValue, 1);\nconsole.log(carpim); \/\/ 24<\/code><\/pre>\n\n\n\n<p>Bu kullan\u0131m, <code>reduce()<\/code> metodunun toplama d\u0131\u015f\u0131nda da kullan\u0131labilece\u011fini g\u00f6sterir.<\/p>\n\n\n\n<p>Bu \u00f6rnekler, <code>reduce()<\/code> metodunun JavaScript&#8217;te veri i\u015fleme ve d\u00f6n\u00fc\u015ft\u00fcrme g\u00f6revlerinde ne kadar g\u00fc\u00e7l\u00fc ve esnek olabilece\u011fini g\u00f6stermektedir. Yarat\u0131c\u0131l\u0131\u011f\u0131n\u0131z\u0131 kullanarak <code>reduce()<\/code> metodunu \u00e7ok \u00e7e\u015fitli durumlar i\u00e7in uyarlayabilirsiniz.<\/p>\n\n\n\n<p>Sonu\u00e7 olarak, <code>reduce()<\/code> fonksiyonu, JavaScript d\u00fcnyas\u0131nda bir ke\u015fif yolculu\u011funa \u00e7\u0131kmak isteyen her geli\u015ftirici i\u00e7in vazge\u00e7ilmez bir ara\u00e7t\u0131r. Bu metodun sundu\u011fu esneklik ve g\u00fcc\u00fc ke\u015ffettik\u00e7e, veri i\u015fleme ve d\u00f6n\u00fc\u015ft\u00fcrme g\u00f6revlerinizde daha etkili ve verimli olman\u0131n kap\u0131lar\u0131n\u0131 aralayacaks\u0131n\u0131z.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>JavaScript&#8217;in reduce() metodu, diziler \u00fczerinde \u00e7al\u0131\u015fan g\u00fc\u00e7l\u00fc ve esnek bir fonksiyondur. Bu metod, bir dizideki t\u00fcm elemanlar\u0131 tek bir de\u011fere indirgemek i\u00e7in kullan\u0131l\u0131r. K\u0131sacas\u0131, reduce() fonksiyonu bir dizi \u00fczerinden ge\u00e7er ve her eleman i\u00e7in bir geri \u00e7a\u011f\u0131r\u0131m fonksiyonu uygular. Bu i\u015flem sonucunda, birikimli bir sonu\u00e7 elde edilir. Bu birikimli sonu\u00e7, dizi elemanlar\u0131n\u0131n toplam\u0131, \u00e7arp\u0131m\u0131 veya [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[22],"tags":[31,64,63],"class_list":["post-538","post","type-post","status-publish","format-standard","hentry","category-blog","tag-javascript","tag-javascript-metotlari","tag-reduce"],"_links":{"self":[{"href":"https:\/\/mudosdigital.com\/tr\/wp-json\/wp\/v2\/posts\/538","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mudosdigital.com\/tr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/mudosdigital.com\/tr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/mudosdigital.com\/tr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/mudosdigital.com\/tr\/wp-json\/wp\/v2\/comments?post=538"}],"version-history":[{"count":1,"href":"https:\/\/mudosdigital.com\/tr\/wp-json\/wp\/v2\/posts\/538\/revisions"}],"predecessor-version":[{"id":539,"href":"https:\/\/mudosdigital.com\/tr\/wp-json\/wp\/v2\/posts\/538\/revisions\/539"}],"wp:attachment":[{"href":"https:\/\/mudosdigital.com\/tr\/wp-json\/wp\/v2\/media?parent=538"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mudosdigital.com\/tr\/wp-json\/wp\/v2\/categories?post=538"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mudosdigital.com\/tr\/wp-json\/wp\/v2\/tags?post=538"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}