فرق بین کارکرد map و for each در جاوا لسکریپت

با سلام

کد map و for each چه تفاوتهایی باهم در کد نویسی دارن میشه کسی توضیح بده چون من موقع کد زنی هیچ فرقی بین دوتاشون ندیدم هر دوتاشون مثل هم عمل میکنند ؟؟؟؟

پاسخ ها

sokanacademy forum
کاربر سکان آکادمی 5 سال پیش

به زبان ساده اگر بخواهیم بیان کنیم‌:

foreach: یک تابع را روی تک تک اعضای یک آرایه اجرا می‌کند اما چیزی را return نمیکند (undefined)

map: یک تابع را روی تک‌تک اعضای آرایه اجرا می‌کند و یک آرایه‌ی جدید از مقادیر بازگردانده شده ایجاد می‌کند.

با توجه به اینکه به شرایط وابسته است،‌ اما در مثال زیر map سریع‌تر از foreach اجرا خواهد شد.

به طور کل به این بستگی دارد که شما قصد انجام چه کاری را دارید.

بهتر است که از foreach برای زمانی استفاده کنیم که نمی‌خواهیم داده‌ای را تغییر دهیم اما قصد انجام کاری با خود داده را داریم‌! به طور مثال بخواهیم آنرا در دیتابیس ذخیره کنیم.

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

مثال‌ :

let arr = [1, 2, 3, 4, 5];

arr.forEach((num, index) => {
 return arr[index] = num * 2;
}); 
// Resutl: arr = [2, 4, 6, 8, 10]


let doubled = arr.map(num => {
 return num * 2;
});
// Result: doubled = [2, 4, 6, 8, 10]
online-support-icon