loading...
کمیته علمی کامپیوتر و فناوری اطلاعات آموزشکده فنی ابن حسام
ابن حسام بازدید : 300 یکشنبه 03 شهریور 1398 نظرات (0)

این متد نیز دقیقاً همانند ()map. و ()reduce. یک callback برای هر عنصر آرایه بازمی‌گرداند. تنها تفاوت این است که در اینجا ارسال نتیجه این callback (یعنی accumulator) از یک عنصر به عنصر دیگر صورت نمی‌گیرد.

Accumulator می‌تواند هر چیزی باشد (عدد صحیحی، رشته، شیء و غیره) و باید هنگام فراخوانی ()reduce. یک وهله از آن ایجاد یا ارسال شود.

اینک نوبت به بررسی یک مثال رسیده است. فرض کنید آرایه‌ای داریم که در آن اسامی خلبان‌ها و سنوات خدمتشان آمده است:

می‌خواهیم کل سال‌های سنوات خدماتی همه خلبان‌ها را بدانیم. این کار با استفاده از متد ()reduce. کاملاً سرراست است:

دقت کنید که مقدار آغازین به صورت 0 تعیین شده است. در صورت نیاز می‌توان از یک متغیر موجود نیز استفاده کرد. پس از اجرای callback برای هر عنصر آرایه، متد reduce مقدار نهایی accumulator ما را که در این مورد برابر با 82 است بازمی‌گرداند. در قطعه کد زیر نسخه فشرده کد فوق با استفاده از تابع‌های arrow در ES6 را می‌بینید:

اینک فرض کنید می‌خواهم بدانیم کدام خلبان از همه باتجربه‌تر است. بدین منظور نیز می‌توانیم از reduce استفاده کنیم:

ما accumulator خود را oldest می‌نامیم. Callback ما اقدام به مقایسه accumulator هر خلبان می‌کند. اگر خلبانی سال‌های خدمتی بالاتر از متغیر oldest داشته باشد، در این صورت آن خلبان به oldest جدید تبدیل می‌شود و این روند همین طور تا آخر تداوم می‌یابد.

همان طور که شاهد هستید استفاده از ()reduce. روشی آسان برای تولید مقدار منفرد یا شیء از یک آرایه محسوب می‌شود.

ارسال نظر برای این مطلب

کد امنیتی رفرش
اطلاعات کاربری
  • فراموشی رمز عبور؟
  • آرشیو
    آمار سایت
  • کل مطالب : 287
  • کل نظرات : 0
  • افراد آنلاین : 5
  • تعداد اعضا : 0
  • آی پی امروز : 88
  • آی پی دیروز : 32
  • بازدید امروز : 124
  • باردید دیروز : 79
  • گوگل امروز : 12
  • گوگل دیروز : 14
  • بازدید هفته : 203
  • بازدید ماه : 321
  • بازدید سال : 5,746
  • بازدید کلی : 119,895