- Publikuar më
Hartat e Hash në JavaScript: Çifte Çelës-Vlerë me Performancë të Lartë
- Autorët
- Emri
- Imamuzzaki Abu Salam
- https://x.com/ImBIOS_Dev
Pse Hashmap?
Epo, ne e dimë që gjuhët e tjera të programimit kanë diçka të quajtur Hashtable. Është një strukturë e të dhënave që ruan çifte çelës-vlerë që janë shumë të mira për shkak të kërkimit të tyre konstant të kohës O(1). Është një strukturë e të dhënave me avantazhe që mund të përdorim për të ruajtur të dhëna. Në JavaScript, nuk kemi një strukturë të ndërtuar të dhënave si Hashtable. Por mund të përdorim një objekt për të ruajtur çifte çelës-vlerë. Kjo quhet Map në JavaScript.
Çfarë është një Map?
Një Map është një koleksion elementesh ku çdo element ruhet si një çelës, çift vlerë. Çelësat dhe vlerat e një Map mund të jenë çdo vlerë (të dyja objektet dhe vlerat primitive). Një objekt Map iteron elementët e tij në rendin e futjes - një cikël for...of kthen një masiv [çelës, vlerë] për çdo iteracion.
Një Map mban çifte çelës-vlerë ku çelësat mund të jenë çdo lloj i të dhënave. Një Map ka një pronë që përfaqëson madhësinë e Map-it. Një Map mban mend rendin e futjes fillestare të çelësave.
Metodat & Prona e Map
Metoda | Përshkrimi |
---|---|
new Map() | Krijon një objekt Map të ri |
set() | Vendos vlerën për një çelës në një Map |
get() | Kthen vlerën për një çelës |
has() | Kthen një vlerë boolene duke treguar nëse një çelës ekziston në një Map |
delete() | Hiq një çelës nga një Map |
clear() | Hiq të gjithë çelësat nga një Map |
values() | Kthen një objekt iterator i vlerave në një Map |
keys() | Kthen një objekt iterator i çelësave në një Map |
entries() | Kthen një objekt iterator i çifteve çelës-vlerë në një Map |
forEach() | Ekzekuton një funksion të dhënë një herë për çdo çift çelës-vlerë në një Map |
Prona | Përshkrimi |
---|---|
size | Kthen numrin e çifteve çelës/vlerë në një Map |
Shembull i 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
Iterimi i 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'])
// Iteroni çelësat
for (const key of map.keys()) {
console.log(key)
}
// Iteroni vlerat
for (const value of map.values()) {
console.log(value)
}
// Iteroni çiftet çelës-vlerë
for (const [key, value] of map.entries()) {
console.log(key, value)
}
// Iteroni çiftet çelës-vlerë
map.forEach((value, key) => {
console.log(key, value)
})
Map vs. Objekt
Map | Objekt |
---|---|
Map është një koleksion i artikujve të të dhënave të çelësuar, ashtu si një Objekt. Por dallimi kryesor është se Map lejon çelës të çdo lloji. | Çelësat e objektit duhet të jenë ose një string ose një simbol. |
Map është i iterueshëm dhe mund të ciklohet lehtësisht. | Objekti nuk është i iterueshëm dhe nuk mund të ciklohet lehtësisht. |
Map ka një metodë të ndërtuar forEach, kështu që nuk ka nevojë për ta kthyer atë në një masiv. | Objekti nuk ka një metodë të ndërtuar forEach. |
Map ka një pronë madhësie, kështu që mund të marrim lehtësisht numrin e artikujve. | Objekti nuk ka një pronë madhësie. |
Map mund të përdorë objekte si çelës. | Objekti nuk mund të përdorë objekte si çelës. |
Map është më i shpejtë se Objekti në përgjithësi. | Objekti është përgjithësisht më i ngadalshëm se Map. |
Përfundim
Në këtë artikull, ne kemi mësuar për Map në JavaScript. Ne kemi mësuar për metodat dhe pronat e Map. Ne kemi njohur gjithashtu dallimin midis Map dhe Objektit. Shpresoj që e keni shijuar këtë artikull. Nëse keni ndonjë pyetje, ju lutemi lini një koment më poshtë. Faleminderit që lexuat.
Postimi origjinal në: https://blog.imam.dev/blog/javascript-hashmap
Referenca
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map