✍️ متد map همان الگویی را آماده در اختیارمان میذاره که در تمرین قبلی با حلقه نوشتیم: برای هر عضو یک callback اجرا میکنه و نتیجهها را در آرایه تازه میریزه. تعداد و ترتیب اعضا حفظ میشه؛ فقط مقدار هر خانه از خروجی callback میاد. به همین دلیل map برای تبدیل واحد، ساخت عنوان یا استخراج یک ویژگی مناسب است.
مثال پایین از هر شیء، فقط نام محصول را برمیداره. خروجی یک آرایه از رشتههاست و اشیای اولیه هم همان ویژگیهای قبلی را دارند. البته تازه بودن آرایه به معنی کپی عمیق اشیای داخلش نیست؛ اگر داخل callback ویژگی خود شیء را تغییر بدیم، آن تغییر روی شیء اصلی هم دیده میشه.
خطای رایج اینه که در callback آکولاد بذاریم ولی return ننویسیم. در این حالت آرایه خروجی پر از undefined میشه. برای یک تبدیل ساده، بدنه عبارتی خواناست. برای چند مرحله، بدنه آکولادی و خروجی صریح انتخاب بهتری است. روی آرایه خالی، map بدون اجرای callback یک آرایه خالی میده.
const products = [{name: 'دفتر', price: 40}, {name: 'خودکار', price: 15}];
const names = products.map(product => product.name);
console.log(names); // ['دفتر', 'خودکار']
console.log(products[0].price); // 40
فعالیت شما
کد map را بخوان و رابطه هر محصول با نام متناظر در خروجی را دنبال کن.