متد map، یک تابع روی همه‌ی اعضای یک آرایه اعمال می‌کنه. خروجی این متد یک آرایه هست که شامل خروجی تابع اعمال شده روی اعضای آرایه مورد نظر ماست:

let numbers = [ 1, 2, 3, 4 ];

let output = numbers.map(function(num) {
    return num * 2;
});

console.log(output); // [ 2, 4, 6, 8 ]

پارامتر اول متد map اون تابعی هست که می‌خوایم روی تک‌تک اعضای آرایه مورد نظر ما اعمال بشه.

شاید توی مصاحبه‌ها از شما پرسیده بشه که این متد رو بصورت دستی پیاده‌سازی کنین. خب اولین چیز اینه که مسئله رو درک کنیم، یعنی این متد داره چکار می‌کنه. الان که با نحوه‌ی کارکرد این متد آشنا شدیم می‌تونیم اون رو پیاده‌سازی کنیم:

function map(arr, mapCallback) {
    if (! Array.isArray(arr) || ! arr.length || typeof mapCallback !== 'function') { 
        return [];
    } else {
        let result = [];

        for (let i = 0, len = arr.length; i < len; i++) {
            result.push(mapCallback(arr[i], i, arr)); 
        }

        return result;
    }
}

توی این تابع اول بررسی کردیم که آیا ورودی‌های ما معتبر هستن یا نه، و بعد تابع مورد نظرمون رو روی تک تک اعضا اعمال کردیم و خروجی رو ریختیم توی یک آرایه جدید و نهایتا اون رو return کردیم.

برای آشنایی کامل‌تر با این متد این پست رو ببینید:

 

منبع: