Hvordan lage enumerator i JavaScript

Hvordan lage enumerator i JavaScript
Mens du programmerer i JavaScript, har du noen gang opplevd en situasjon der det kreves å administrere noen hardkodede verdier eller en stor fil med konstanter med spesifikke verdier som standardstrenger eller URL-er? Hvis ja, så lær konseptet med Oppregning å enkelt takle et slikt problem neste gang.

I JavaScript, tellere lage et sett med "konstanter”Eller noen tydelige verdier, gjør koden lettere å lese og vedlikeholde. De er også nyttige når det gjelder å begrense utvalget; For eksempel er de mulige verdiene for å representere årstidene i temperert klima sommer, vinter, høst og vår.

Denne oppskrivningen vil diskutere metoden til Lag en oppregning I JavaScript. Så la oss starte!

Enumerator i JavaScript

Du vet kanskje at tall kan brukes til å referere til en "verdi" og "type" av noe. For eksempel, i det undergitte programmet, vil vi knytte et nummer "1”Med konstant”SOMMER”Som sesongtype:

const sommer = 1;

Deretter vil vi definere en funksjon som heter “getason ()”Det aksepterer“type”Som et argument og sammenligne det med typen“SOMMER”Bruke streng likestillingoperatør”===”:

funksjon getason (type)
FunctionGetSeason (type)
if (type === sommer)
return navn: 'sommersesong';

return navn: 'annen sesong';

Til slutt, påkalle "getason ()”Funksjon mens du passerer”1”Som et argument:

getason (1);

Utgangen fra den ovennevnte koden vil skrive ut sesonginformasjonen på konsollen, i henhold til den beståtte typen:

Ønsker å definere flere typer sesong? For å gjøre det, lag konstanter med navnet på den spesifikke sesongen og tilordne et nummer til den som dets “type”:

const sommer = 1;
const sommer = 1;
const vinter = 2;
FunctionGetSeason (type)
if (type === sommer)
return navn: 'sommersesong';

if (type === vinter)
return navn: 'vintersesong';

return navn: 'annen sesong';

getason (2);

Produksjon

Som du ser fra ovennevnte output, fungerer programmet vårt perfekt. Fortsatt den definerte sesongen Typer er ikke logisk koblet og eksisterer som uavhengig konstanter som kan plasseres hvor som helst i koden, noe som gjør dem til komplekse å håndtere. I en slik situasjon, “Tellere”Kommer inn i spill!

Oppsiktere tilbyr funksjonaliteten til å definere et sett med navngitt “konstanter”Eller distinkte tilfeller. Når denne mekanismen brukes, er alle "hardkodet”Verdier legges til på et enkelt sted de blir henvist til, ikke skrevet om. Bruken av tellere hjelper også med å forbedre kodeoppholdbarheten.

La oss nå sjekke metoden for å lage tellere i JavaScript.

Hvordan lage en teller i JavaScript

Helperatorer støttes ikke i ES6 og de tidligere versjonene; Imidlertid er det et mønster, så vi kan gjenskape det ved hjelp av innfødte JavaScript -funksjoner og teknikker.

I JavaScript kan du opprette tellere av:

  • Definere en teller "Gjenstand
  • Opprette en teller "Klasse

Vi vil diskutere hver av de spesifiserte metodene i de neste seksjonene.

Hvordan lage enumerator -objekt i JavaScript

Som nevnt tidligere, er tellere definert som "konstanter”Eller“nøkkelverdi”Par, så for å bruke dem i JavaScript, må du opprette et objekt med navnet som følger“Pascalcase”Og nøkler i“Stor bokstav”:

const sesonger =
Sommer: 1,
Vinter: 2,
Vår: 3,
Høst: 4

Inntil dette punktet har vi opprettet en oppregler som heter “Årstider,”Men verdiene kan enkelt endres, noe som negerer at det er en teller. Vi må spesifisere dens egenskaper som "uforanderlig”For å endre denne oppførselen.

For dette formålet vil vi påkalle JavaScript “Gjenstand.fryse()”Metode mens du definerer egenskapene til“Årstider”Objekt. Ved å gjøre det, "Gjenstand.fryse()”Metoden vil fryse“Årstider”Objekt og forhindrer egenskapene fra enhver manipulasjon:

Const Seasons = Objekt.fryse(
Sommer: 1,
Vinter: 2,
Vår: 3,
Høst: 4
);
Årstider;

Produksjon

For grunnleggende scenarier kan du opprette et tellerobjekt; Imidlertid, når du må spesifisere noen logikk for å legge til verdier, kan du gå for implementeringen av enumeratoren i en JavaScript -klasse.

Hvordan lage enumeratorklasse i JavaScript

Å lage en “Teller”Klasse i JavaScript, følg de undergitte instruksjonene:

  • Først av alt, definere en “konstruktør ()”For tellerklassen som godtar et variabelt antall argumenter som“nøkler”. Den opprettede konstruktørmetoden vil være ansvarlig for å legge til hver "nøkkel”Til et tellerobjekt og fryser det deretter øyeblikkelig ved hjelp av“Gjenstand.fryse()”Metode.
  • I neste trinn, bruk "Symbol.iterator ()”Metode for å konvertere en forekomst av tellerklassen til en“iterable”Objekt. Denne funksjonaliteten vil gjøre enumeratorobjektet mer nyttig.
  • Til slutt, erklærer et objekt for “Teller”Klasse og passere“nøkler”Til konstruktøren ().
Klassesernuator
klassenumerator
konstruktør (... nøkler)
nøkler.foreach ((nøkkel, i) =>
denne [nøkkelen] = i;
);
Gjenstand.fryse (dette);

*[Symbol.iterator] ()
for (la nøkkelen OfObject.Keys (dette)) avkastningsky;


constSeasonSenum = newEnumerator (
'sommer',
'vinter',
'vår',
'høst');
const sesonger = [… seasonsenum];
konsoll.logg (årstider);

Slik har vi implementert tellerklassen i JavaScript:

Vi har samlet forskjellige metoder for å lage tellere i JavaScript. Avhengig av dine krav, kan du bruke noen av dem og dra nytte av oppregnernes funksjoner.

Konklusjon


I JavaScript kan du opprette et "Enumerator -objekt”Eller“Enumerator -klasse”For å implementere oppregningsbegrepet, der tellerobjektet brukes i grunnleggende scenarier og tellerklassen er definert for kompleks logikk. Begge tilnærminger bruker “Gjenstand.fryse()”Metode for å fryse det opprettede enumeratorobjektet og merke dets egenskaper som uforanderlig. Denne oppskrivningen diskuterte forskjellige metoder for å lage en teller i JavaScript.