b14grubu

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

b14grubu ۱۳۹۸/۰۶/۲۳ زبان برنامه‌نویسی جاوا‌اسکریپت

با سلام

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

پاسخ‌ها به این تاپیک
حسام جعفرزاده
حسام جعفرزادهبرنامه‌نویس وب سایت
۱۳۹۸/۰۶/۲۵

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

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]