آشنایی با map در جاواسکریپت
متد map در جاواسکریپت زمانی استفاده میشود که بخواهید از یک آرایه، آرایهٔ جدیدی بسازید.
یعنی میخواهید روی هر عضو آرایه اصلی یک عمل انجام بدهید و نتیجهٔ آن را در یک آرایه
جدید ذخیره کنید. تفاوت map با forEach در همین است که map همیشه یک آرایه جدید برمیگرداند.
برای درک بهتر، به این دو مثال دقت کنید:
فرض کنید لیستی از قیمتهای محصولات دارید و میخواهید برای نمایش به مشتری،
قیمتها را با مالیات اضافه کنید و یک لیست جدید از قیمتهای نهایی بسازید.
در اینجا map بهترین انتخاب است.
یا فرض کنید لیست شاگردان یک صنف را دارید و میخواهید نام هر شاگرد را به همراه لقب «شاگرد» به شکل یک لیست جدید آماده کنید تا در کارنامه چاپ شود.
در چنین مواردی، map ابزار مناسبی است چون شما آرایهای جدید بر اساس آرایه اصلی تولید میکنید.
مثال اول – افزودن مالیات به قیمت محصولات:
const prices = [100, 200, 300]
const pricesWithTax = prices.map(price => {
return price * 1.1
})
console.log(pricesWithTax)
توضیح کد:
آرایهای بهنام prices داریم که قیمت چند محصول را ذخیره کرده است.
متد map روی این آرایه اجرا میشود. در هر تکرار، مقدار price گرفته شده و ضربدر ۱.۱ میشود تا ۱۰ درصد مالیات اضافه شود.
نتیجهٔ هر تکرار در آرایهٔ جدید بهنام pricesWithTax ذخیره میشود.
در پایان، آرایهٔ جدید شامل قیمتهای نهایی است که مالیات اضافه شده است:
[110, 220, 330]
مثال دوم – ساختن لیست کارنامه شاگردان:
const students = ["Zahra", "Omid", "Farzana"]
const reportNames = students.map(name => {
return `شاگرد ${name}`
})
console.log(reportNames)
توضیح کد:
آرایه students شامل نامهای سه شاگرد است.
map روی این آرایه اجرا میشود. در هر تکرار، نام شاگرد گرفته شده و با پیشوند «شاگرد» ترکیب میشود.
نتیجهٔ هر بار در آرایهٔ reportNames ذخیره میشود.
خروجی این کد یک آرایه جدید است شاگرد:
["شاگرد Zahra", "شاگرد Omid", "شاگرد Farzana"]
نتیجهگیری
هر زمان که نیاز داشته باشید یک آرایه جدید از روی آرایهٔ اصلی بسازید، map بهترین گزینه است.
کد شما را ساده، خوانا و تمیز نگه میدارد و باعث میشود بدون استفاده از حلقههای اضافی، به نتیجه برسید.
در نوشته بعدی، متد filter را بررسی خواهیم کرد که برای انتخاب بخشی از آرایه بر اساس یک شرط استفاده میشود.