Publikuar më

Hartat e Hash në JavaScript: Çifte Çelës-Vlerë me Performancë të Lartë

Autorët

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

MetodaPë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
PronaPërshkrimi
sizeKthen 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

MapObjekt
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

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/