منتشر شده در

په جاوا سکریپټ کې هش نقشه: د لوړ فعالیت سره د کلید-ارښت جوړه

نویسندگان

ولې HashMap؟

ښه، موږ ټول پوهیږو چې بل برنامه نویسي ژبه یو څه لري چې Hashtable بلل کیږي. دا یو ډاټا جوړښت دی چې کلید-ارزش جوړه ذخیره کوي چې ډیره ښه ده ځکه چې د دوی O(1) ثابت وخت لټون. دا یو ګټور ډاټا جوړښت دی چې موږ کولی شو د معلوماتو ذخیره کولو لپاره وکاروو. په جاوا سکریپټ کې، موږ د Hashtable په څیر یو جوړ شوی ډاټا جوړښت نلرو. مګر موږ کولی شو د کلید-ارزش جوړه ذخیره کولو لپاره یو شی وکاروو. دا په جاوا سکریپټ کې Map بلل کیږي.

Map څه شی دی؟

Map یو مجموعه ده د عناصرو چې هر عنصر د کلید، ارزښت جوړه په توګه ذخیره شوی. د Map کلیدونه او ارزښتونه کولی شي هر ډول ارزښت وي (دواړه شیان او لومړني ارزښتونه). یو Map شی د هغه عناصرو ټکر کولو کې په داخلیدو ترتیب کې - یو for...of حلقه د هر ټکر لپاره د [کلید، ارزښت] یوه ټولګه راګرځوي.

Map د کلید-ارزش جوړه ساتي چې کلیدونه یې هر ډول ډاټا ټایپ کیدی شي. Map یو ملکیت لري چې د Map اندازې استازیتوب کوي. Map د کلیدونو اصلي داخلیدو ترتیب یاد ساتي.

Map میتودونه & ملکیتونه

میتودتشریح
new Map()یو نوی Map شی جوړوي
set()د Map کې د کلید لپاره ارزښت تنظیموي
get()د کلید لپاره ارزښت بیرته راګرځوي
has()یو بولین بیرته راګرځوي چې دا ښيي چې ایا یو کلید په Map کې شتون لري
delete()یو کلید له Map څخه لرې کوي
clear()ټول کلیدونه له Map څخه لرې کوي
values()د Map کې د ارزښتونو یو ایټریټر شی راګرځوي
keys()د Map کې د کلیدونو یو ایټریټر شی راګرځوي
entries()د Map کې د کلید-ارزش جوړو یو ایټریټر شی راګرځوي
forEach()یو ټاکل شوی فعالیت یو ځل د Map کې د هر کلید-ارزش جوړې لپاره ترسره کوي
ملکیتتشریح
sizeد Map کې د کلید/ارزش جوړو شمیر بیرته راګرځوي

Map مثال

const map = new Map()
map.set('name', 'John')
map.set('age', 30)
map.set('isMarried', true)
map.set('address', { city: 'New York', state: 'NY' })
map.set('hobbies', ['reading', 'writing', 'coding'])

console.log(map.get('name')) // John
console.log(map.get('age')) // 30
console.log(map.get('isMarried')) // true
console.log(map.get('address')) // {city: 'New York', state: 'NY'}
console.log(map.get('hobbies')) // ['reading', 'writing', 'coding']

console.log(map.size) // 5

Map ټکر

const map = new Map()
map.set('name', 'John')
map.set('age', 30)
map.set('isMarried', true)
map.set('address', { city: 'New York', state: 'NY' })
map.set('hobbies', ['reading', 'writing', 'coding'])

// د کلیدونو ټکر
for (const key of map.keys()) {
  console.log(key)
}

// د ارزښتونو ټکر
for (const value of map.values()) {
  console.log(value)
}

// د کلید-ارزش جوړو ټکر
for (const [key, value] of map.entries()) {
  console.log(key, value)
}

// د کلید-ارزش جوړو ټکر
map.forEach((value, key) => {
  console.log(key, value)
})

Map vs. Object

MapObject
Map یو مجموعه ده د کلید شوي ډاټا توکو، لکه یو Object. مګر اصلي توپیر دا دی چې Map د هر ډول ډاټا ټایپ کلیدونه اجازه ورکوي.Object کلیدونه باید یا یو تار یا یو سمبول وي.
Map ټکر وړ دی او په اسانۍ سره یې حلقه کیدی شي.Object ټکر وړ نه دی او په اسانۍ سره یې حلقه کیدی شي.
Map یو جوړ شوی forEach میتود لري، نو اړتیا نشته چې دا په یوه ټولګه بدل شي.Object یو جوړ شوی forEach میتود نه لري.
Map یو size ملکیت لري، نو موږ کولی شو په اسانۍ سره د توکو شمیر ترلاسه کړو.Object یو size ملکیت نه لري.
Map کولی شي شیان د کلید په توګه وکاروي.Object کولی شي شیان د کلید په توګه ونه کاروي.
Map په عمومي توګه د Object څخه ګړندی دی.Object په عمومي توګه د Map څخه ورو دی.

نتيجه

په دې مقاله کې، موږ په جاوا سکریپټ کې د Map په اړه زده کړه کړې. موږ د Map میتودونو او ملکیتونو په اړه زده کړه کړې. موږ د Map او Object ترمنځ د توپیر په اړه هم پوهیدلي یو. هیله لرم چې تاسو د دې مقالې څخه خوند اخیستی وي. که تاسو کومه پوښتنه لرئ، مهرباني وکړئ په لاندې نظر کې یې ولیکئ. د لوستلو لپاره مننه.

په اصلي توګه په لاندې پته کې خپره شوې: https://blog.imam.dev/blog/javascript-hashmap

حوالې

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map

https://www.freecodecamp.org/news/what-is-a-javascript-map-what-are-the-differences-between-map-and-object-in-javascript/

https://www.geeksforgeeks.org/map-vs-object-javascript/