Тази публикация ще обясни разликата между Map и Object в JavaScript.
Как да дефинирам обект в JavaScript?
В JavaScript обектът е колекция от свойства, всяко с двойка ключ-стойност. „ ключ ” е „ име “, и „ стойност ” е „стойността” спрямо ключа. Обектите могат да представляват обекти от реалния свят, като кола, човек или банкова сметка. Те могат също да представляват по-абстрактни обекти, като математическа точка в пространството, цвят или дата.
Синтаксис
Обект може да бъде създаден с помощта на буквална нотация на обекта {} скоби или конструктора на обекта. Използвайки буквалната нотация или скоби, използвайте синтаксиса по-долу:
конст обект = {
ключ : стойност,
ключ : стойност
}
Създаване на обект с помощта на конструктора на обект или „ нов ”, използвайте следния синтаксис:
конст обект = нов Обект ( ) ;
обект. ключ = стойност ;
Забележка: Имайте предвид, че ключовете или имената на свойствата на обекта трябва да са низ.
Пример 1: Създаване на обект с помощта на буквална нотация в JavaScript
В следващия пример ще създадем обект, наречен „ stdObject ” използвайки буквална нотация или скоби:
var stdObject = {
име : 'Джон' ,
възраст : 18 ,
ролно : 25 ,
стандартен : 9
}
Отпечатайте обекта на конзолата:
конзола. дневник ( stdObject ) ;Изход
Пример 2: Създаване на обект с помощта на конструктор на обекти в JavaScript
Тук ще създадем обект с помощта на конструктора на обект, използвайки „ нов ” ключова дума:
конст stdObject = нов Обект ( ) ;Сега добавете свойствата (ключ-стойност) на обекти, като използвате нотацията точка(.):
stdObject. име = 'майната му' ;stdObject. възраст = 19 ;
stdObject. ролно = петнадесет ;
stdObject. стандартен = 10 ;
И накрая, покажете обекта на конзолата, като използвате „ console.log() ” метод:
конзола. дневник ( stdObject ) ;Изход
Как да дефинирам карта в JavaScript?
В JavaScript, „ Карта ” е структура от данни, която съдържа двойки ключ-стойност, подобни на обект. Тя ви позволява да свързвате данни с ключове и да извличате данните по-късно с помощта на ключовете. Картите могат да се използват за внедряване на речници, хеш-таблици и други структури от данни, които картографират ключове към стойности.
Синтаксис
За да инициализирате карта, използвайте следния синтаксис:
конст карта = нов Карта ( [[ 'ключ' , 'стойност' ] ,
[ 'ключ' , 'стойност' ]
] ) ;
Можете също да създадете карта с помощта на конструктора на карта или с помощта на оператора new и да зададете стойности, като използвате „ комплект() ” метод:
конст карта = нов Карта ( ) ;карта. комплект ( 'ключ' , 'стойност' ) ;
Пример: Създайте карта в JavaScript
В дадения пример ще създадем карта, използвайки и двата синтаксиса.
Създайте карта, като използвате метода за инициализация. Тук ще зададем ключове като низ, докато вие можете да зададете ключове в карта във всеки тип:
конст mapStd = нова карта ( [[ име , 'Джон' ] ,
[ 'възраст' , 18 ] ,
[ 'rollno' , 25 ] ,
[ 'стандартен' , 9 ] ,
] ) ;
Или създайте карта, като извикате конструктора на карта или новата ключова дума/оператор:
конст mapStd = нов Карта ( ) ;Задайте стойности в Map в двойка ключ-стойност, като използвате „ комплект() ” метод:
mapStd. комплект ( име , 'Джон' ) ;mapStd. комплект ( 'възраст' , 18 ) ;
mapStd. комплект ( 'rollno' , 25 ) ;
mapStd. комплект ( 'стандартен' , 9 ) ;
За да отпечатате картата на конзолата, използвайте „ записи () ' метод с ' за-на ” цикъл:
за ( конст [ ключ, стойност ] на mapStd. записи ( ) ) {конзола. дневник ( `$ { ключ } : $ { стойност } ` ) ;
}
Или за достъп до стойността на всеки конкретен ключ/свойство, използвайте „ получи() ” метод:
конзола. дневник ( 'Ролното на' + mapStd. получавам ( име ) + 'е' + mapStd. получавам ( 'rollno' ) ) ;Изходът показва всички свойства на картата и стойността на конкретното свойство:
Карта срещу обект в JavaScript
Основната разлика между картата и обекта е следната:
Карта | Обект |
Той беше въведен в ECMAScript 6 през 2015 г. | JavaScript въведе типа данни Object в първата си версия (ECMAScript 1), издадена през 1997 г. |
Картата позволява ключове от всякакъв тип данни (напр. обекти, функции, числа и т.н.). | Ключовете на обекта трябва да са низове. |
Свойствата на карта могат да бъдат достъпни с помощта на метода get(). | Свойствата на обекта могат да бъдат достъпни чрез нотация с точка или нотация с квадратни скоби. |
Map има вградено свойство size за връщане на броя двойки ключ-стойност | Обектът няма тази функция. |
Картата може да се повтаря. Позволява преминаване през всички двойки ключ-стойност с помощта на някои вградени методи като forEach(), keys(), values() и entries(). | Обектът не може да се повтаря. Има нужда да се използват цикли „for-in“ или метод Object.entries() за повторение на двойки ключ-стойност. |
Картата е поръчана. | Обектът не е подреден. |
Когато работите с малки набори от данни, разликата в производителността между Карти и обекти е незначителна, но когато работите с по-големи набори от данни, Картите могат да бъдат по-бързи, тъй като са оптимизирани за производителност.
Кога картата предпочита пред обектите в JavaScript?
Когато трябва да съхранявате двойки ключ-стойност в подредена форма или стойността като ключ да бъде произволен тип данни, като числа, обекти или символи, използвайте „ Карта ' структура на данни. Обектите ще се използват, когато трябва да използвате низове като ключове и когато не се нуждаете от функциите на Карти. Разликата в производителността между Карти и обекти е незначителна при работа с малки набори от данни, но когато работите с по-големи набори от данни, Картите могат да бъдат по-бързи, тъй като са оптимизирани за производителност.
Заключение
Map и Object се използват за съхраняване на данни като двойки ключ-стойност в JavaScript, но имат някои разлики. Map е по-мощна и гъвкава структура от данни от Object и е предпочитаният избор, когато трябва да съхранявате двойки ключ-стойност, които трябва да бъдат подредени, да имате ключове от различни типове данни или да имате свойство за размер. Тази публикация обяснява разликата между Map и Object в JavaScript.