يك نقشه زوج هاي كليد ومقدار(key-value) را در خود نگه ميدارد .كليد ميتواند هر نوع داده اي باشد.
يك نقشه ترتيب درج كليدهاي اصلي را درنظر دارد.
نقشه داراي يك ويژگيsize است، كه اندازه نقشه را نشان ميدهد .
متدهاي نقشه مطابق جدول زيراست:
متد | شــرح متد |
---|---|
new Map( ) | يك شئ نقشه ايجاد ميكند. |
set( ) | مقداري را براي كليد مشخص تنظيم ميكند. |
get( ) | مقدار كليدي در نقشه را برگشت ميدهد. |
clear( ) | همه عنصر نقشه را پاك يا حذف ميكند. |
delete( ) | عنصري با كليد مشخص از نقشه را حذف ميكند. |
has( ) | وجود عنصري با كليد مشخص را كنترل ميكند.درصورت وجودtrue برگشت ميشود . |
forEach( ) | براي هر زوج(key/value) تابعي را فراخون ميكند. |
entries( ) | برگشت شئ تكرار پذير با زوج هاي[key,value] عناصرنقشه |
keys( ) | برگشت شئ تكرارپذير با كليدهاي نقشه |
values( ) | برگشت شئ تكرار پذير با مقادير نقشه |
اشياء نقشه داراي يك ويژگيsize() هستند كه تعدادعناصر آنهارا برگشت ميدهد.
ميتوانيد يك نقشه مطابق موارد زير ايجاد نمائيد;
بار ارسال يك آرايه به سازنده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( ) مقدار كليد مشخصي از نقشه را برگشت ميدهد .
مثال ـ متدget( ) براي دستري بمقدار عنصري از نقشه
fruits.get("apples"); // Returns 500
ويژگيsize نقشه تعداد عناصر نقشه رابرگشت ميدهد.
مثال ـ اندازه نقشه
fruits.size;
متدdelete( ) عنصر مشخصي را از شئ نقشه حذف مي نمايد.
مثال ـ حذف عنصري از نقشه
fruits.delete("apples");
متدclear( ) همه عناصر نقشه را حذف ميكند .
مثال ـ حذف همه عناصر شئ نقشه
fruits.clear();
متدhas( ) اگر كليد مشخصي در نقشه وجود داشته باشد، true برگشت ميدهد.
مثال ـ كنترل وجود عنصري در نقشه
fruits.has("apples");
مثال ـ اين مثال را اجرا كنيد تا نتيجه حذف را مشاهده كنيد
fruits.delete("apples"); fruits.has("apples");
typeof بر روي نقشه نتيجه برگشتيtrue را دارد .
مثال ـ بررسي نوع نقشه
// Returns object: typeof fruits;
مثال ـ بررسي نمونهfruits با instanceof
// Returns true: fruits instanceof Map;
با توجه بدو مثال بالا نشان ميدهد كهfruits نمونه اي از maps بوده ونوع آن شئ است .
احتلاف مابين اشياء جاوااسكريپت ونقشه ها مطابق جدول زيراست:
شئ جاوااسكريپت | نقشه |
---|---|
مستقما تكرار پذير نيستند. | تكرارپذير مستقيم |
داراي ويژگيsize نيست | داراي ويژگيsize است . |
كليدها بايد رشته يا سيمبل باشند. | كليد ميتواند هر نوع داده اي باشد. |
كليد ها ترتيب خوبي ندارند. | كليد ها به ترتيب درج مرتبند. |
داراي كليد پيش فرض است | كليد پيش فزض ندارد. |
متدforEach( ) براي هر عنصر نقشه با زوج key/value تابعي را فراخوان ميكند.
مثال ـ متدforEach( ) براي fruits
// List all entries let text = ""; fruits.forEach (function(value, key) { text += key + ' = ' + value;
از متدforEach( ) ميتوان براي نمايش نقشه استفاده نمود .
متدentries( ) شئ تكرار پذيري از زوج هاي [key,value] عناصر نقشه برگشت ميدهد.
مثال ـ متدentries( ) روي fruits
// List all entries let text = ""; for (const x of fruits.entries()) { text += x; }
متدkeys( ) شئ تكرار پذيري از كليدهاي نقشه (key) برگشت ميدهد.
مثال ـ متدkeys( ) روي fruits
// List all keys let text = ""; for (const x of fruits.keys()) { text += x; }
متدvalues( ) روي نقشه شئ تكرار پذيري از مقادير نقشه برگشت ميدهد .
مثال ـ متدvalues( ) روي fruits
// List all values let text = ""; for (const x of fruits.values()) { text += x; }
ميتوان از متدvalues( ) براي محاسبه جمع مقادير نقشه استاده كرد .
مثال ـ محاسبه جمع مقاديرfruits
// Sum all values let total = 0; for (const x of fruits.values()) { total += x; }
توانائي استفاده از اشياء به عنوان كليد يكي از ويژگي هاي مهم نقشه است.
مثال ـ اشياء بعنوان كليد نقشه
// Create Objects const apples = {name: 'Apples'}; const bananas = {name: 'Bananas'}; const oranges = {name: 'Oranges'}; // Create a Map const fruits = new Map(); // Add new Elements to the Map fruits.set(apples, 500); fruits.set(bananas, 300); fruits.set(oranges, 200);
توجه كنيد كه كليد در شئ(apples) است نه رشته ("apples")
مثال ـ
fruits.get("apples"); // Returns undefined
نقشه ها در تمام مرورگرهاي مهم بجرء اينترنت اكسپلورر پشتيباني ميشود.