محمد کریمی
محمد کریمی
خواندن ۱ دقیقه·۲ ماه پیش

مروری بر ساختمان داده Map در جاوا اسکریپت

آبجکت ها در جاوا اسکریپت نوع خاصی از پیاده‌سازی hash table می‌باشند که مقادیر در آن‌ها به صورت کلید-مقدار ذخیره می‌گردد. کلید منحصر به فرد می‌باشد و نوع داده آن از نوع string و یا symbol می‌باشد همچنین مقدار آن از هر نوع داده‌ای می‌تواند باشد.

ساختمان داده Map تفریبا مانند آبجکت ها است اما با چند فرق، که در زیر به چند مورد اشاره شده است.

  • گاهی ممکن است نیاز به آبجکتی داشته باشید که نوع داده کلید آن از انواع دیگر داده‌ها نیز بتواند استفاده کند. فرق اساسی آبجکت با Map در همین موضوع است که در Map کلید می‌تواند هر نوع داده‌ای باشد.
  • در Mapکلید-مقدارها به ترتیب درج شدن قرار گرفته شده، اما در آبجکت نمی‌توان به این موضوع اطمنیان داشت.
  • شی Map یک شی iterable می‌باشد و میتوان با استفاده از حلقه for…of بر روی آن پیمایش انجام داد. که در هر پیمایش مقدار [key,value] بر می‌گردد.
  • ساختمان داده Map در سناریوهایی که شامل اضافه و حذف مکرر جفت‌های کلید-مقدار هستند، بهتر عمل می‌کند.
  • برای تبدیل آبجکت به Json (serialization) و Json به آبجکت (parsing) پشتیبانی بومی وجود دارد در حالیکه برای Map همچین پشتیبانی وجود ندارد و باید آن را خودتان پیاده‌سازی کنید.

در قطعه کد زیر نحوه ایجاد map را مشاهده می‌کنید.

در قطعه کد زیر با اعمال تغییرات در map همچون درج، حذف،‌ بررسی وجود کلید،‌ حذف کلید- مقدار،‌ حذف کل کلید-مقدارها و دریافت تعداد عناصر در map را مشاهده می‌کنید.

برای استفاده از حلقه‌ها بر روی map چهار method زیر را داریم.

برای بررسی اینکه یک متغیر Map هست یا نه، نمی‌توان از typeof استفاده کرد چرا که استفاده از آن تنها آبجکت بودن متغیر را به ما می‌گوید و باید از دستور زیر استفاده کرد.

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