Weşand li ser

Nexşeya Hash di JavaScriptê de: Cûtên Key-Value yên Performansa Bilind

Nivîskar

Çima Map?

Baş, em hemû dizanin ku zimanekî dinê bernamekirinê tiştek bi navê Hashtable heye. Ev yek strukturê daneyek e ku cûtên key-value hildigire ku ewqas baş in ji ber lêgerîna demê wan ya O(1). Ew yek strukturê daneyek e ku em dikarin bikar bînin ji bo hilanîna daneyan. Di JavaScriptê de, me strukturê daneyekî ava kirî wek Hashtable tune. Lê em dikarin tiştek bikar bînin ji bo hilanîna cûtên key-value. Ew di JavaScriptê de Map tê gotin.

Map çi ye?

Map komekê elemente ku her element wek cûteke Key, Value tê hilanîn. Key û valuesên Map dikarin her nirxek bin (hem tişt û hem nirxên primitive). Tiştek Map elementên xwe bi rêza zêdekirinê digerîne - gorîngehek for...of di her gorîngehê de arrayekê [key, value] vedigerîne.

Map cûtên key-value digire ku key dikarin ji her celebê datayê bin. Map xwedî xusûsiyetek e ku mezinahiya Map nîşan dide. Map rêza zêdekirina eslî ya keyan bi bîr tîne.

Metod û Xusûsiyetên Map

MetodNivîs
new Map()Tiştek Mapê nû diafirîne
set()Nirxê ji bo keyek di Mapê de saz dike
get()Nirxê ji bo keyek vedigerîne
has()Bolek vedigerîne ku diyar dike ka keyek di Mapê de heye yan na
delete()Keyek ji Mapê radike
clear()Hemû keyan ji Mapê radike
values()Objekeyek gorîngehê ya valuesan di Mapê de vedigerîne
keys()Objekeyek gorîngehê ya keyan di Mapê de vedigerîne
entries()Objekeyek gorîngehê ya cûtên key-value di Mapê de vedigerîne
forEach()Fonksiyonek ku tê dayîn yek car ji bo her cûteke key-value di Mapê de dimeşîne
XusûsiyetNivîs
sizeHejmara cûtên key/value di Mapê de vedigerîne

Nimûneya 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

Gorîngeha 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'])

// Gorîngeha keyan
for (const key of map.keys()) {
  console.log(key)
}

// Gorîngeha valuesan
for (const value of map.values()) {
  console.log(value)
}

// Gorîngeha cûtên key-value
for (const [key, value] of map.entries()) {
  console.log(key, value)
}

// Gorîngeha cûtên key-value
map.forEach((value, key) => {
  console.log(key, value)
})

Map li hember Object

MapObject
Map komekê elementên ku bi key ve hatine destnîşan kirin e, mîna Object. Lê cihê cuda ev e ku Map destûrê dide ku key ji her celebî bin.Keyên Object divê string yan jî symbol bin.
Map gorîngeh e û bi hêsanî dikare tê de gorîngeh were kirin.Object gorîngeh nîne û bi hêsanî nikare tê de gorîngeh were kirin.
Map xwedî metoda forEach a ava kirî ye, ji ber vê yekê hewce nake ku ew were veguheztin arrayek.Object xwedî metoda forEach a ava kirî nîne.
Map xwedî xusûsiyeta size ye, ji ber vê yekê em dikarin bi hêsanî hejmara elementan bistînin.Object xwedî xusûsiyeta size nîne.
Map dikarin tiştan wek key bikar bînin.Object nikarin tiştan wek key bikar bînin.
Bi gelemperî Map ji Object zûtir e.Bi gelemperî Object ji Map hêdîtir e.

Encam

Di vê gotarê de, me di derbarê Map di JavaScriptê de hîn bû. Me di derbarê metod û xusûsiyetên Map de hîn bû. Me her weha di derbarê cihê cudahiya Map û Object de jî dizanî. Hêvî dikim ku hûn ji vê gotarê kêf girtine. Heke hûn pirsên we hebin, ji kerema xwe şîroveyek li jêr bihêlin. Spas ji bo xwendinê.

Gotara eslî li: https://blog.imam.dev/blog/javascript-hashmap hat weşandin

Referans

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/