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

چه می‌شود اگر آرایه‌ای داشته باشیم که تنها به برخی از عناصر آن نیاز داشته باشیم؟ همین جا است که ()filter. به کار می‌آید. داده‌های ما به صورت زیر هستند:

فرض کنید می‌خواهیم دو آرایه داشته باشیم که یکی برای خلبان‌های تازه‌کار و دیگری برای خلبان‌های کهنه‌کار است. انجام این کار با استفاده از ()filter. بسیار آسان است:

به همین سادگی این کار را انجام دادیم. با استفاده از تابع‌های Arrow از این هم ساده‌تر می‌شود:

اگر تابع callback مقدار true بازمی‌گرداند، عنصر کنونی در آرایه حاصل خواهد بود؛ اما اگر مقدار بازگشتی false باشد نخواهد بود.

ترکیب ()map() ، .reduce. و ()filter.

از آنجا که هر سه این متدها روی آرایه استفاده می‌شوند و ()map. و ()filter. مقدار آرایه‌ای بازمی‌گردانند، ما می‌توانیم فراخوانی‌های خود را به سادگی زنجیره‌سازی کنیم. در ادامه مثال دیگری را بررسی می‌کنیم. داده‌های ما چنین است:

هدف ما این است که امتیاز کلی نیروهای نظامی را به دست آوریم. این کار را گام به گام اجرا می‌کنیم. ابتدا باید کارکنانی که نمی‌توانند در نیروی نظامی استفاده شوند را حذف کنیم:

بدین ترتیب سه عنصر در آرایه حاصل باقی می‌ماند. ما باید یک آرایه شامل امتیاز کلی هر نیرو ایجاد کنیم:

همچنین از reduce برای دریافت امتیاز کلی استفاده می‌کنیم:

اکنون به بخش جذاب ماجرا می‌رسیم. ما می‌توانیم همه این موارد را به صورت زنجیره‌ای در یک خط کد اجرا کنیم:

با استفاده از تابع‌های arrow بسیار جذاب‌تر به نظر می‌رسد:

دقت کنید که در مثال قبلی ()map. و ()filter. ضروری نبودند. ما می‌توانیم به سادگی همین نتیجه را تنها با ()reduce. به دست آوریم. ما آن‌ها را صرفاً به منظور ارائه مثال آنجا قرار داده‌ایم. آیا می‌توانید حدس بزنید که چگونه صرفاً با حفظ ()reduce. می‌توانیم همین نتیجه را با تنها یک خط کد به دست آوریم؟

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

کد امنیتی رفرش
اطلاعات کاربری
  • فراموشی رمز عبور؟
  • آرشیو
    آمار سایت
  • کل مطالب : 287
  • کل نظرات : 0
  • افراد آنلاین : 5
  • تعداد اعضا : 0
  • آی پی امروز : 147
  • آی پی دیروز : 32
  • بازدید امروز : 185
  • باردید دیروز : 79
  • گوگل امروز : 13
  • گوگل دیروز : 14
  • بازدید هفته : 264
  • بازدید ماه : 382
  • بازدید سال : 5,807
  • بازدید کلی : 119,956