يك نگاشت(map) در جاوااسكريپت زوج هاي كليد ومقدار(key/value) را نگهداري ميكند .كليد ميتواند هر نوع داده باشد.
نگاشت هاي جاوااسكريپت ترتيب درج كليدهاي اصلي را بخاطردارند، و نبايد تكرارشود.
متد | شــرح |
---|---|
| يگ نگاشت ايجاد ميكند. |
set() | مقدار كليدي را درنگاشت مشخص ميكند. |
get() | مقدار كليدي را دريافت ميكند. |
delete() | عنصري ازنگاشت را با كليدمشخص حذف ميكند. |
has() | وجود عنصري را باكليد مشخص ، معين(return true) ميكند. |
forEach() | تابعي را براي هرزوج نگاشت فراخوان ميكند. |
entries() | يك تكرار پذير |
نگاشت داراي يك ويژگي با نامsize است كه تعداد عناصر آنرا برگشت ميدهد .
در جاوااسكريپت يك نگاشت را مطابق موارد زير ميتوان ايجادنمود:
مي توان با ارسال آرايه به سازندهnew Map() نگاشتي را ايجاد كرد .
مثال ـ ايجاد نگاشت با ارسال آرايه به new Map()
// Create a Map
const fruits = new Map([
["apples", 500],
["bananas", 300],
["oranges", 200]
]);
بامتدset() ميتوان عنصري به نگاشت اضافه نمود .
مثال ـ افزايش عنصر در نگاشت
// Create a Map
const fruits = new Map();
// Set Map Values
fruits.set("apples", 500);
fruits.set("bananas", 300);
fruits.set("oranges", 200);
با همين متد مي توان مقدار عنصري موجود را تغيير داد.
مثال ـ تغيير مقدار عنصر نگاشت
fruits.set("apples", 200);
با متدget( ) مقدار عنصري از نگاشت را دريافت ميكنيم
مثال ـ دريافت مقدار عنصري از نگاشت
fruits.get("apples"); // Returns 500
ويژگيsize تعداد عناصر يك نگاشت را برگشت ميدهد .
مثال ـ دريافت تعداد عناصر نگاشت
fruits.size;
با متدdelete() ميتوان عنصري از نگاشت ر حذف نمود .
متال ـ حذف عنصرنگاشت
fruits.delete("apples");
با متدhas( ) ميتوان وجودي عنصري در نگاشت را بررسي نمود. اگر برگشتي متدtrue باشده عنصر مشحص شده وجود دارد .
مثال ـ بررسي وجود عنصري در نگاشت
fruits.has("apples");
مثال ـ نمونه زير عنصري حذف ميشود، وحذف آن بررسي ميشود.
fruits.delete("apples"); fruits.has("apples");
| object | Map |
---|---|---|
itreable | واقعي ندارد | واقعي دارد |
size | داراي ويژگي اندازه نيست | داراي اين ويژگي است |
key Types | كليد ها بايد رشته يا سيمبل باشند | كليد ازهرنوع داده اي ميتواند باشد. |
Key Oder | كليدها داراي هيچ ترتيبي نيستند. | كليد ها داراي ترتيب درج ميباشند. |
default | داراي كليد پيش فرضي است | كليد پيش فرض ندارد. |
با متدforEach( ) ميتوان براي هرزوجKey/value نگاشت تابعي رافراخوان كرد.
مثال ـ استفادهforEach( ) براي نگاشت
// List all entries let text = ""; fruits.forEach (function(value, key) { text += key + ' = ' + value; })
با متدentries( ) ميتوان يك Map را به شئ تكرار پذير از
مثال ـ متدentries( )
// List all entries let text = ""; for (const x of fruits.entries()) { text += x; }
توجه ـ نگاشت هاي جاوااسكريپت در تمام مرورگرها بجز انترنت اكسپلورر پشتيباني ميشود.