خیلیها این دوتا رو تقریباً یکی میدونن، در حالی که یک تفاوت مهم دارن که توی کدنویسی واقعی خیلی مهمه.
فرض کن یه آرایه داریم:
const prices = [100, 200, 300];
با ()forEach میتونیم روی هر آیتم کاری انجام بدیم:
prices.forEach(price => {
console.log(price * 2);
});اما ()forEach چیزی برنمیگردونه:
const result = prices.forEach(price => price * 2);
console.log(result);
// undefined
اینجاست که ()map وارد میشه:
const result = prices.map(price => price * 2);
console.log(result);
// [200, 400, 600]
یعنی ()map روی هر آیتم یک عملیات انجام میده و یک آرایه جدید برمیگردونه.
پس خیلی ساده:
forEach() → برای اجرای یک عملیات روی آیتمها
map() → برای تبدیل آیتمها و ساختن یک آرایه جدید
مثلاً وقتی از API یه لیست کاربر میگیری:
const names = users.map(user => user.name);
اینجا دقیقاً داری از ()map برای استخراج و تبدیل داده استفاده میکنی. 🔥
یه نکته مهم هم اینه که اگر فقط میخوای روی آیتمها کاری انجام بدی و آرایه جدیدی لازم نداری، ()forEach انتخاب منطقیتریه.
اسم متد مهم نیست؛ مهم اینه بدونی هرکدوم برای چه کاری ساخته شده.
@CodeVerse_dev