- Yayımlanma tarixi
JavaScript-də Hash Xəritələri: Yüksək Performanslı Anahtar-Dəyər Cütləri
- Müəllif(lər)
- Ad
- Imamuzzaki Abu Salam
- https://x.com/ImBIOS_Dev
Niyə Hashmap?
Bilirik ki, digər proqramlaşdırma dillərində Hashtable adlı bir şey var. Bu, O(1) sabit vaxt axtarışı sayəsində çox yaxşı olan açar-dəyər cütlərini saxlayan bir məlumat quruluşudur. Bu, məlumat saxlamaq üçün istifadə edə biləcəyimiz üstünlüklü bir məlumat quruluşudur. JavaScript-də Hashtable kimi daxili bir məlumat quruluşumuz yoxdur. Lakin açar-dəyər cütlərini saxlamaq üçün obyekt istifadə edə bilərik. JavaScript-də buna Map deyilir.
Map nədir?
Map, hər bir elementi Açar, Dəyər cütü olaraq saxlayan elementlər toplusudur. Bir Map-in açarları və dəyərləri hər hansı bir dəyər ola bilər (həm obyektlər, həm də ibtidai dəyərlər). Bir Map obyekti öz elementlərini daxil edilmə sırasına görə gəzir - for...of dövrəsi hər iterasiya üçün [açar, dəyər] cütlərinin bir massivini qaytarır.
Bir Map, açarları istənilən məlumat növü ola bilən açar-dəyər cütlərini saxlayır. Bir Map, Map-in ölçüsünü təmsil edən bir xüsusiyyətə malikdir. Bir Map, açarların ilk daxil edilmə sırasını xatırlayır.
Map Metodləri & Xüsusiyyəti
Metod | Təsvir |
---|---|
new Map() | Yeni bir Map obyekti yaradır |
set() | Bir Map-də bir açar üçün dəyəri təyin edir |
get() | Bir açar üçün dəyəri qaytarır |
has() | Bir açarın bir Map-də olub-olmadığını göstərən bir Boolean qaytarır |
delete() | Bir Map-dən bir açarı silər |
clear() | Bir Map-dən bütün açarları silər |
values() | Bir Map-dəki dəyərlərin bir iterator obyektini qaytarır |
keys() | Bir Map-dəki açarların bir iterator obyektini qaytarır |
entries() | Bir Map-dəki açar-dəyər cütlərinin bir iterator obyektini qaytarır |
forEach() | Bir Map-dəki hər bir açar-dəyər cütü üçün verilmiş bir funksiyanı yerinə yetirir |
Xüsusiyyət | Təsvir |
---|---|
size | Bir Map-dəki açar/dəyər cütlərinin sayını qaytarır |
Map Nümunəsi
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 İterasiyası
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'])
// Açarları gəzmək
for (const key of map.keys()) {
console.log(key)
}
// Dəyərləri gəzmək
for (const value of map.values()) {
console.log(value)
}
// Açar-dəyər cütlərini gəzmək
for (const [key, value] of map.entries()) {
console.log(key, value)
}
// Açar-dəyər cütlərini gəzmək
map.forEach((value, key) => {
console.log(key, value)
})
Map vs. Obyekt
Map | Obyekt |
---|---|
Map, Obyekt kimi, açarlı məlumat maddələrinin toplusudur. Ancaq əsas fərq odur ki, Map hər hansı bir növ açara imkan verir. | Obyekt açarları ya string, ya da symbol olmalıdır. |
Map təkrarlanabilir və asanlıqla gəzilə bilər. | Obyekt təkrarlana bilmir və asanlıqla gəzilə bilmir. |
Map-in daxili bir forEach metodu var, buna görə onu massiva çevirməyə ehtiyac yoxdur. | Obyektin daxili bir forEach metodu yoxdur. |
Map-in bir ölçü xüsusiyyəti var, buna görə də maddələrin sayını asanlıqla əldə edə bilərik. | Obyektin ölçü xüsusiyyəti yoxdur. |
Map obyektləri açar kimi istifadə edə bilər. | Obyekt obyektləri açar kimi istifadə edə bilmir. |
Ümumiyyətlə Map, Obyektdən daha sürətlidir. | Obyekt ümumiyyətlə Map-dən daha yavaşdır. |
Nəticə
Bu yazıda JavaScript-də Map haqqında məlumat əldə etdik. Map metodları və xüsusiyyətləri haqqında məlumat əldə etdik. Həmçinin Map və Obyekt arasındakı fərqi bildik. Ümid edirəm bu yazını bəyənmisiniz. Suallarınız varsa, aşağıdakı şərhdə yazın. Oxuduğunuz üçün təşəkkür edirəm.
Başlanğıcda dərc olunmuşdur: https://blog.imam.dev/blog/javascript-hashmap
İstinadlar
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map