توضیح:
این متد شبیه به متد map یا filter است.
این تابع بر روی آرایه خالی کار نمیکند.
این متد یک تابع دریافت میکند که بر روی هر یک از مقادیر آرایه موردنظر کار میکند و در نهایت براساس محاسباتی که انجام میدهد یک مقدار را برگشت میدهد.
نحوه نوشتن:
1 |
array.reduce(function(total, currentValue, currentIndex, arr), initialValue); |
پارامترها:
- مقدار total: این پارامتر یا دارای مقدار اولیه پارامتر initialValue است یا حاصل نتیجه نهایی اجرای تابع بروی تمامی المنت ها است.در صورتی که پارامتر initialValue تعیین نشده باشد مقدار آن اولین آیتم آرایه است. (ضروری)
- مقدار currentValue: مقدار جاری المنت آرایه موردنظر. است.در صورتی که پارامتر initialValue تعیین نشده باشد مقدار آن دومین آیتم آرایه است (ضروری)
- مقدار index: اندیس المنت جاری. است.در صورتی که پارامتر initialValue تعیین نشده باشد مقدار اندیس آن دومین آیتم آرایه است (اختیاری)
- مقدار arr: آرایه جدیدی که زیرمجموعه المنت جاری است.(اختیاری)
- مقدار initialValue: تعیین مقدار اولیه پارامتر total.(اختیاری)
مقدار بازگشت:
این تابع در نهایت مقدار نهایی حاصل از اجرای تابع موردنظر بروی المنت های آرایه را برگشت میدهد
وضعیت پشتیبانی از مرورگرها:
مرورگر Chrome | مرورگر Firefox | مرورگر Edge | مرورگر Safari | مرورگر Opera |
---|---|---|---|---|
از ۳ به بعد | از ۳ به بعد | از ۱۲ به بعد | از ۵ به بعد | از ۱۰٫۵ به بعد |
مثال:
1 2 3 4 5 6 7 8 |
const numbers = [175, 50, 25]; document.getElementById("demo").innerHTML = numbers.reduce(myFunc); function myFunc(total, num) { return total - num; } //100 |