- Objavljeno
Hash mape u JavaScript-u: Ključ-vrijednostni parovi visokih performansi
- Autori
- Ime
- Imamuzzaki Abu Salam
- https://x.com/ImBIOS_Dev
Zašto koristiti Map?
Pa, svi znamo da drugi programski jezici imaju nešto što se zove Hashtable. To je struktura podataka koja pohranjuje ključ-vrijednost parove koji su odlični zbog svog O(1) konstantnog vremenskog pretraživanja. To je korisna struktura podataka koju možemo koristiti za pohranu podataka. U JavaScriptu nemamo ugrađenu strukturu podataka kao što je Hashtable. Ali možemo koristiti objekt za pohranu ključ-vrijednost parova. U JavaScriptu se to naziva Map.
Šta je Map?
Map je kolekcija elemenata gdje se svaki element pohranjuje kao par Ključ, Vrijednost. Ključevi i vrijednosti Map-a mogu biti bilo koja vrijednost (i objekti i primitivne vrijednosti). Objekt Map iterira svoje elemente u redoslijedu umetanja - for...of petlja vraća niz [ključ, vrijednost] za svaku iteraciju.
Map sadrži ključ-vrijednost parove gdje ključevi mogu biti bilo kojeg tipa podataka. Map ima svojstvo koje predstavlja veličinu Map-a. Map pamti originalni redoslijed umetanja ključeva.
Metode i svojstva Map-a
Metoda | Opis |
---|---|
new Map() | Kreira novi objekt Map |
set() | Postavlja vrijednost za ključ u Map-u |
get() | Vraća vrijednost za ključ |
has() | Vraća boolean koji pokazuje da li ključ postoji u Map-u |
delete() | Uklanja ključ iz Map-a |
clear() | Uklanja sve ključeve iz Map-a |
values() | Vraća objekt iteratora vrijednosti u Map-u |
keys() | Vraća objekt iteratora ključeva u Map-u |
entries() | Vraća objekt iteratora ključ-vrijednost parova u Map-u |
forEach() | Izvršava zadanu funkciju jednom za svaki ključ-vrijednost par u Map-u |
Svojstvo | Opis |
---|---|
size | Vraća broj ključ/vrijednost parova u Map-u |
Primjer Map-a
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
Iteracija Map-a
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'])
// Iteriranje ključeva
for (const key of map.keys()) {
console.log(key)
}
// Iteriranje vrijednosti
for (const value of map.values()) {
console.log(value)
}
// Iteriranje ključ-vrijednost parova
for (const [key, value] of map.entries()) {
console.log(key, value)
}
// Iteriranje ključ-vrijednost parova
map.forEach((value, key) => {
console.log(key, value)
})
Map vs. Objekt
Map | Objekt |
---|---|
Map je kolekcija podataka sa ključevima, baš kao i Objekt. Ali glavna razlika je u tome što Map dozvoljava ključeve bilo kojeg tipa. | Ključevi objekta moraju biti string ili simbol. |
Map je iterabilan i lako se može iterirati. | Objekt nije iterabilan i ne može se lako iterirati. |
Map ima ugrađenu forEach metodu, tako da nema potrebe da se konvertuje u niz. | Objekt nema ugrađenu forEach metodu. |
Map ima svojstvo size, tako da možemo lako dobiti broj stavki. | Objekt nema svojstvo size. |
Map može koristiti objekte kao ključeve. | Objekt ne može koristiti objekte kao ključeve. |
Map je brži od Objekta uopšteno. | Objekt je generalno sporiji od Map-a. |
Zaključak
U ovom članku smo naučili o Map-u u JavaScriptu. Naučili smo o metodama i svojstvima Map-a. Takođe smo saznali o razlici između Map-a i Objekta. Nadam se da ste uživali u ovom članku. Ako imate bilo kakvih pitanja, ostavite komentar ispod. Hvala vam na čitanju.
Originalno objavljeno na: https://blog.imam.dev/blog/javascript-hashmap
Reference
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map