محمد پیمان راد
محمد پیمان راد
خواندن ۲ دقیقه·۲ سال پیش

مفاهیم Map و Set در جاوااسکریپت , قسمت اول


ما آبجکت ها و آرایه ها رو داشتیم اما در اکمااسکریپت6 دو نوع ساختمان داده جدید معرفی شدن به اسم های Map و Set که یه جورایی به آبجکت ها و آرایه قدرت می بخشن اما دو نوع داده کاملا متفاوت هستن.

در قسمت اول به Map می پردازیم:

تعریف مپ:

مپ مجموعه ای از جفت های "کلید-مقدار" است اما تفاوت اصلیش با آبجکت ها این هست که مقادیری که به عنوان کلید استفاده می شوند می توانند از هر نوع داده ای باشند.

نحوه ایجاد مپ:

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

//Empty Map let map = new Map(); //Map From An Object let obj = { prop1:1, prop2:2, }; let mapFromObj = new Map(Object.entries(obj));

متد ها و پراپرتی های مهم مپ:

  • map.set(key,value)

جفت کلید مقدار جدیدی اضافه می کند.این متد مپ را بعد از اضافه کردن جفت کلید مقدار بر می گرداند.

  • map.get(key)

مقدار نظیر با کلید داده شده را بر می گرداند و اگر همچین کلیدی وجود نداشت undefined بر می گرداند.

  • map.has(key)

اگر کلید موردنظر وجود داشت true برمی گرداند و در غیر این صورت false.

  • map.delete(key)

مقدار متناظر با کلید مورد نظر را حذف می کند.

  • map.clear()

مپ را کاملا خالی می کند.

  • map.size

این پراپرتی تعداد جفت های کلید مقدار درون مپ را برمی گرداند.

پیمایش مپ:

این داده ساختار در حلقه for of قابل استفاده است:

let map = new Map(); map.set(&quotprop1&quot,1); map.set(&quotprop2&quot,2); map.set(&quotprop3&quot,3); map.set(&quotprop4&quot,4); for (let pair of map) { console.log(pair); }

خروجی:

همچنین مپ یک متد forEach مشابه آرایه ها دارد:

let map = new Map(); map.set(&quotprop1&quot,1); map.set(&quotprop2&quot,2); map.set(&quotprop3&quot,3); map.set(&quotprop4&quot,4); map.forEach((value,key,map) => { console.log( `${key} : ${value}` ); })

خروجی:

تبدیل مپ به آبجکت:

let map = new Map(); map.set(&quotprop1&quot,1); map.set(&quotprop2&quot,2); map.set(&quotprop3&quot,3); map.set(&quotprop4&quot,4); let obj = Object.fromEntries(map); console.log(obj);

خروجی:

مثالی در رابطه با مپ:

در این مثال می خوایم یک آرایه و دو مپ رو با هم ادغام کنیم و یک مپ جدید بسازیم:

const firstMap = new Map(); firstMap.set(&quotprop1&quot,1); firstMap.set(&quotprop2&quot,2); const secondMap = new Map(); secondMap.set(&quotprop3&quot,3); secondMap.set(&quotprop4&quot,4); const thirdMap = new Map([...firstMap,...secondMap,[&quotprop5&quot,5]]); console.log(thirdMap);

خروجی:



امیدوارم لذت برده باشید. انشاالله در قسمت بعد به Set خواهیم پرداخت.


منابع و مراجع:

javascript.info

MDN

اکما اسکریپتجاوااسکریپتطراحی وبسایتبرنامه نویسی
در حال ماجراجویی در دنیای پایان ناپذیر وب
شاید از این پست‌ها خوشتان بیاید