Овај пост ће објаснити разлику између мапе и објекта у ЈаваСцрипт-у.
Како дефинисати објекат у ЈаваСцрипт-у?
У ЈаваСцрипт-у, објекат је колекција својстава, од којих свако има пар кључ-вредност. „ кључ ' је ' име ”, и „ вредност ” је „вредност” у односу на кључ. Објекти могу представљати објекте из стварног света, као што су аутомобил, особа или банковни рачун. Они такође могу представљати апстрактније објекте, попут математичке тачке у простору, боје или датума.
Синтакса
Објекат се може креирати коришћењем литералне нотације објекта {} заграде или конструктора објеката. Користећи дословну нотацију или заграде, користите синтаксу испод:
конст објекат = {
кључ : вредност,
кључ : вредност
}
Креирање објекта помоћу конструктора објеката или „ Нова ” кључну реч, користите следећу синтаксу:
конст објекат = Нова Објекат ( ) ;
објекат. кључ = вредност ;
Белешка: Имајте на уму да кључеви или имена својстава објекта морају бити стринг.
Пример 1: Креирајте објекат користећи литералну нотацију у ЈаваСцрипт-у
У следећем примеру, креираћемо објекат под називом „ стдОбјецт ” користећи дословну нотацију или заграде:
вар стдОбјецт = {
име : 'Јован' ,
старости : 18 ,
роллно : 25 ,
стандардне : 9
}
Одштампајте објекат на конзоли:
конзола. Пријава ( стдОбјецт ) ;Излаз
Пример 2: Креирајте објекат користећи конструктор објеката у ЈаваСцрипт-у
Овде ћемо креирати објекат користећи конструктор објеката користећи „ Нова ” кључна реч:
конст стдОбјецт = Нова Објекат ( ) ;Сада додајте својства (кључ-вредност) објеката користећи ознаку тачка(.):
стдОбјецт. име = 'јебати' ;стдОбјецт. старости = 19 ;
стдОбјецт. роллно = петнаест ;
стдОбјецт. стандардне = 10 ;
На крају, прикажите објекат на конзоли користећи „ цонсоле.лог() ” метод:
конзола. Пријава ( стдОбјецт ) ;Излаз
Како дефинисати мапу у ЈаваСцрипт-у?
У ЈаваСцрипт-у, „ Мапа ” је структура података која садржи парове кључ-вредност сличне објекту. Омогућава вам да повежете податке са кључевима и касније их преузмете помоћу кључева. Мапе се могу користити за имплементацију речника, хеш табела и других структура података које мапирају кључеве у вредности.
Синтакса
Да бисте иницијализовали мапу, користите следећу синтаксу:
конст Мапа = Нова Мапа ( [[ 'кључ' , 'вредност' ] ,
[ 'кључ' , 'вредност' ]
] ) ;
Такође можете креирати мапу користећи конструктор мапе или користећи нев оператор, и поставити вредности користећи „ комплет() ” метод:
конст Мапа = Нова Мапа ( ) ;Мапа. комплет ( 'кључ' , 'вредност' ) ;
Пример: Направите мапу у ЈаваСцрипт-у
У датом примеру ћемо креирати мапу користећи обе синтаксе.
Креирајте мапу користећи метод иницијализације. Овде ћемо поставити кључеве као стринг док ви можете поставити кључеве на мапи било које врсте:
конст мапСтд = невМап ( [[ 'име' , 'Јован' ] ,
[ 'старост' , 18 ] ,
[ 'роллно' , 25 ] ,
[ 'стандард' , 9 ] ,
] ) ;
Или креирајте мапу тако што ћете позвати конструктор мапе или нову кључну реч/оператор:
конст мапСтд = Нова Мапа ( ) ;Подесите вредности у мапи у пару кључ/вредност користећи „ комплет() ” метод:
мапСтд. комплет ( 'име' , 'Јован' ) ;мапСтд. комплет ( 'старост' , 18 ) ;
мапСтд. комплет ( 'роллно' , 25 ) ;
мапСтд. комплет ( 'стандард' , 9 ) ;
Да бисте одштампали мапу на конзоли, користите „ уноси() ” метод са „ за-оф ” петља:
за ( конст [ кључ, вредност ] оф мапСтд. уносе ( ) ) {конзола. Пријава ( `$ { кључ } : $ { вредност } ` ) ;
}
Или за приступ вредности било ког специфичног кључа/својства, користите „ добити() ” метод:
конзола. Пријава ( 'Роллно оф' + мапСтд. добити ( 'име' ) + 'је' + мапСтд. добити ( 'роллно' ) ) ;Излаз показује сва својства мапе и вредност одређене особине:
Мапа против објекта у ЈаваСцрипт-у
Основна разлика између мапе и објекта је следећа:
Мапа | Објекат |
Уведен је у ЕЦМАСцрипт 6 2015. године. | ЈаваСцрипт је представио тип података Објецт у својој првој верзији (ЕЦМАСцрипт 1) објављеној 1997. године. |
Мапа дозвољава кључеве било ког типа података (нпр. објекти, функције, бројеви, итд.). | Кључеви објеката морају бити низови. |
Својствима мапе може се приступити коришћењем методе гет(). | Својствима објекта може се приступити коришћењем нотације тачке или угласте заграде. |
Мапа има уграђено својство величине за враћање броја парова кључ/вредност | Објекат нема ову функцију. |
Мапа се може понављати. Омогућава петљу кроз све парове кључ-вредност користећи неке уграђене методе као што су форЕацх(), кеис(), валуес() и ентриес(). | Објекат се не понавља. Постоји потреба да се користе „фор-ин“ петље или Објецт.ентриес() метод за понављање парова кључ-вредност. |
Мапа је наручена. | Објекат је неуређен. |
Када радите са малим скуповима података, разлика у перформансама између Мапа и објеката је занемарљива, али када радите са већим скуповима података, Мапе могу бити брже јер су оптимизоване за перформансе.
Када мапа даје предност објектима у ЈаваСцрипт-у?
Када треба да ускладиштите парове кључ-вредност у уређеном облику или да вредност као кључ буде било који тип података, као што су бројеви, објекти или симболи, користите „ Мапа ' структура података. Објекти ће се користити када треба да користите низове као кључеве и када вам није потребна ниједна од функција Мапа. Разлика у перформансама између Мапа и објеката је занемарљива док радите са малим скуповима података, али када радите са већим скуповима података, Мапе могу бити брже јер су оптимизоване за перформансе.
Закључак
Мапа и објекат се користе за складиштење података као парова кључ-вредност у ЈаваСцрипт-у, али имају неке разлике. Мапа је моћнија и флексибилнија структура података од објекта и преферирани је избор када треба да ускладиштите парове кључ-вредност који треба да буду поређани, имају кључеве различитих типова података или имају својство величине. Овај пост је објаснио разлику између мапе и објекта у ЈаваСцрипт-у.