javascriptArray.map()تبدیل آرایه با map در جاوااسکریپت
روش map در جاوااسکریپت چگونه آرایهٔ تازه میسازد؟ تبدیل عددها، خروجی callback، فراموشکردن return و تفاوت با filter و forEach را با مثال بیاموزید.
مفهوم به زبان ساده
وقتی از هر عضو یک آرایه، یک مقدار تازه میخواهید، map ابزار مناسبی است. تابع تبدیل برای اعضای موجود فراخوانی میشود و نتیجهٔ هر فراخوانی در آرایهٔ خروجی قرار میگیرد.
در این مثال ورودی [1, 2, 3] به [2, 4, 6] تبدیل میشود. map بهخودیخود آرایهٔ اصلی را بازنویسی نمیکند، اما تابعی که به آن میدهید ممکن است دادهٔ ورودی یا اشیای داخل آن را تغییر دهد.
اگر فقط میخواهید کاری انجام دهید و خروجی آرایه را استفاده نمیکنید، forEach یا یک حلقه خواناتر است. برای انتخاب بعضی اعضا نیز filter مناسبتر است.
کجا به کار میآید؟
- تبدیل قیمتهای پایه به قیمت با مالیات
- برداشتن عنوان از فهرست اشیای دوره و ساخت فهرست عنوانها
از تعریف تا یک مثال واقعی
const values = [1, 2, 3];
const doubled = values.map(value => value * 2);
console.log(doubled);
console.log(values);
[2, 4, 6] [1, 2, 3]
این مثال چطور کار میکند؟
values آرایهٔ اصلی با سه عضو است.
value => value * 2 برای هر عضو، دو برابر آن را برمیگرداند.
doubled آرایهٔ تازه است؛ چاپ values نشان میدهد در این مثال تغییر نکرده است.
اشتباه رایج
در تابع پیکانی با بدنهٔ بلوکی، return را فراموش نکنید: values.map(value => { return value * 2; }). بدون return، نتیجهٔ هر فراخوانی undefined خواهد بود.
این را به خاطر بسپارید
map یعنی یک خروجی برای هر عضو موجود؛ خروجی تابع تبدیل را حتماً برگردانید.