متد reduce در جاوااسکریپت - آزمون چهار گزینه ای برنامه نویسی
برای اینکه مطمئن بشی جاوااسکریپت رو خوب یاد گرفتی، این آزمون می تونه مفید باشه. این کوییز بهت کمک می کنه تا مهارت های برنامه نویسی خودت رو به چالش بکشی و درک بهتری از مفاهیم اصلی این زبان به دست بیاری.
متد reduce در جاوااسکریپت
میدونم که کار با آرایهها در جاوااسکریپت چقدر میتونه هیجانانگیز باشه. یکی از قویترین متدهایی که برای کار روی آرایهها وجود داره، reduce است.
این متد بهت اجازه میده که کل آرایه رو روی یک مقدار واحد «کاهش» (reduce) بدی. شاید در نگاه اول پیچیده به نظر بیاد، ولی اگه مفهومش رو درست بفهمی، میتونی ازش برای حل خیلی از مسائل استفاده کنی.
با انجام این کوییز میتونی میزان تسلط خودت رو درباره متد reduce بسنجی و همزمان اطلاعات خوبی در مورد این متد و کاربردهای متنوع اون به دست بیاری.
کاربردهای متد reduce
متد reduce فقط برای جمع کردن اعداد نیست. میتونی ازش برای کلی کار دیگه استفاده کنی. مثلاً برای پیدا کردن بزرگترین یا کوچکترین عدد در یک آرایه، تبدیل یک آرایه به یک شی، یا حتی حذف کردن آیتمهای تکراری.
این متد دو تا آرگومان اصلی میگیره: یک تابع به اسم کال بک و یک مقدار اولیه (که اختیاریه). کالبک هم خودش چهار تا آرگومان میگیره:
accumulator (مقدار تجمعی)، currentValue (مقدار فعلی)، currentIndex (ایندکس فعلی) و array (آرایه اصلی).
برای مثال، بیا یک کد ساده برای جمع زدن اعداد رو ببینیم.
const numbers = [1, 2, 3, 4, 5];
const sum = numbers.reduce((accumulator, currentValue) => accumulator + currentValue, 0);
console.log(sum); // Output: 15
این کد به سادگی تمام اعداد آرایه رو با هم جمع میکنه و نتیجه رو داخل متغیر sum میریزه.
مواردی که باید به اونها دقت کنی
وقتی از reduce استفاده میکنی، چند تا نکته مهم هست که باید حواست بهشون باشه.
- اگه مقدار اولیه رو ندی، اولین عنصر آرایه به عنوان
accumulatorدر نظر گرفته میشه و تکرار از عنصر دوم شروع میشه. - همیشه مطمئن شو که تابع کالبک، مقدار
accumulatorجدید رو برمیگردونه. - برای اینکه کد خواناتری داشته باشی، بهتره از اسامی معنیدار برای آرگومانها استفاده کنی.
مثالهای کاربردی
حالا که با این متد آشنا شدی، بیا چند تا مثال دیگه از کاربردهاش رو ببینیم.
- جمع مقادیر یک شی در آرایه
const items = [{ price: 10 }, { price: 20 }, { price: 30 }]; const total = items.reduce((sum, item) => sum + item.price, 0); console.log(total); // Output: 60 - تبدیل آرایه به شی
const people = [{ id: 'a', name: 'Ali' }, { id: 'b', name: 'Sara' }]; const peopleObject = people.reduce((obj, person) => { obj[person.id] = person; return obj; }, {}); console.log(peopleObject); // Output: { a: { id: 'a', name: 'Ali' }, b: { id: 'b', name: 'Sara' } }
آمادهای؟
سوالات این آزمون در مورد متد reduce هستند. مثلاً ممکنه ازت بپرسم که چطور میتونی از این متد برای شمردن تکرار یک کلمه در یک متن استفاده کنی، یا چطور یک آرایه از رشتهها رو به یک رشته واحد تبدیل کنی. بعد از پاسخ به این سوالات، بهت نشون میدم که چطور میتونی با همین متد، مسائل پیچیدهتر رو هم حل کنی.
جدول مقایسه
| ویژگی | متد reduce | سایر متدها (مثل map و filter) |
|---|---|---|
| هدف اصلی | کاهش آرایه به یک مقدار واحد | ساخت آرایه جدید با تغییر یا فیلتر کردن مقادیر |
| مقدار بازگشتی | یک مقدار واحد (عدد، رشته، شی و...) | یک آرایه جدید |
| کاربردها | جمع زدن، شمارش، تبدیل، پیدا کردن مقدار | تغییر فرمت داده، فیلتر کردن عناصر |
حالا که با مفاهیم اصلی آشنا شدی، وقتش رسیده که خودت رو به چالش بکشی. همین الان روی دکمه شروع کلیک کن و مهارتت رو در استفاده از متد reduce به رخ بکش!