همان طور که از عنوان این مقاله مشخص است میخواهیم ابتدا به بررسی "map” و"forEach” در و بعد از اون به تفاوت های اونا توی زبان جاواسکریپت بپردازیم.
.forEach
برای توضیح forEach باید گفت که : این متود این قابلیت را به ما میدهد که با پیمایش اعضای یک آرایه یک فانکشن یا تابع را اجرا کنیم. اما باید به این موضوع توجه کرد که متود forEach مقداری را بر نمیگرداند و صرفا تابع مورد نظر را اجراع میکند، پس اگر از خروجی آن را چاپ کنید با خروجی undifined روبه رو میشوید. این متود به ما این قابلیت را میدهد که تغییراتی که احتاج است را بر روی یک آرایه یا لیست اعمال کنیم.
برای درک بهتر این متود به مثال پایین توجه کنید:
همون طوری که توی مثال بالا میبینید ما به وسیله متود forEach آرایه اعدادمون رو پیمایش کردیم ،به ازای هر عضو مربع اعداد رو حساب کردیم و در نهایت داخل کنسول به نمایش در اوردیم.
میبینید که اگر خود عبارت returnValue رای در کنسول نمایش دهیم خروجی آن برابر undefined است.
.map
از جهت های بسیاری متود map شبه به متود قبلی یعنی forEach است.مانند متود قبلی map هم یک تابع را باه ازای هر یک از اعضای یک آرایه یا لیست اجرا میکند،اما تفاوتی که بین این دو تابع وجود دارد در این است که متود map بر خلاف متود forEach یک لیست برمیگرداند.
میبینید که آرایه مقادر آرایه ی numberArray هان مقادیر قبلی مانده اند و اما مقداری که متود map برگردانده است و در returnValue ذخیره شده مربع اعداد آرایه اول هستند.
در نتیجه تفاوت اصلی این دو متود در آن است که :متود map یک آرایه جدید برمیگرداند که نتیجه اعمال یک کالبک فانکشن روی اعضای آرایه است اما forEach مقداری را برنمیگرداند