programvare

Slik reverserer du en streng i JavaScript [trinnvis]

Slik reverserer du en streng i JavaScript [trinnvis]

En palindrom er et ord eller en liste over tegn som leser det samme når de snus. Et godt eksempel på dette er ordet 'RADAR'.

Den enkleste måten å se etter et palindrom i JavaScript er å lage en kopi av den originale strengen, reversere den og deretter sammenligne den. Hvis du vil bygge en algoritme som gjør dette effektivt, må du lære hvordan du reverserer en streng i JavaScript. I denne guiden lærer du hvordan.

Hvordan reverserer jeg en streng med JavaScript?

1. Konverter den til en matrise og reverser den

  1. Del strengen i en rekke understrenger ved hjelp av dele() metode fra String-objektklassen. Delingsmetoden krever en streng som argument. I dette tilfellet bruker du en tom streng. Så metoden skal se slik ut:
    dele("")
  2. Omvendt rekkefølgen på matrisen ved hjelp av omvendt() metode.
  3. Konverter matrisen tilbake til en streng ved hjelp av bli med() metode. I likhet med split-metoden krever join-metoden en streng som argument. Nok en gang bruker du en tom streng:
    bli med("")

Den beste måten å implementere trinnene ovenfor er gjennom en funksjon. Her er et raskt kildekodeeksempel som du kan kopiere, teste og endre:




Den store Reverso!


Nåværende streng: "Snu denne strengen!"


Omvendt


funksjon myFunction ()
var str = "Snu denne strengen!";
var res = str.split (""); // Del strengen i en rekke tegn
res.revers (); // Reversere rekkefølgen på matrisen av tegn
str = res.join ("");
document.getElementById ("demo"). innerHTML = str; // Fest strengen til HTML-demoen



I eksemplet ovenfor oppretter vi en funksjon som reverserer en hardkodet streng og deretter setter et dokumentelement til den. Funksjonen kalles deretter fra en knapp merket 'Reverse'.

Det er mange måter du kan forkorte og endre denne koden på. For eksempel, i stedet for å tilordne den sammenføyde strengen til str variabel, kan du tildele den til res variabel og pek deretter demo-HTML-dokumentelementet til det, dvs..

res = res.join ("");
document.getElementById ("demo"). innerHTML = res;

Alternativt kan du kondensere alle tre trinnene i en enkelt linje:

var res = str.split (""). revers (). join ("");

Uansett bør resultatene være de samme:


Vil du lære JavaScript enda raskere? Lær hvorfor du bør laste ned JavaScript-kode ved å lese denne artikkelen!


2. Snu strengen i JavaScript ved hjelp av en for-loop

  1. Opprett en ny tom strengvariabel som inneholder den omvendte strengen.
    var reverseString = "";
  2. Konstruer en for loop med følgende egenskaper:
    • Initializer: initialiser en teller hvis verdi er lengden på strengen som skal reverseres, trukket med 1.
    • Tilstand: sørg for at telleren er større enn eller lik 0.
    • Iterasjon: telleren skal reduseres med hver vellykket løkke.
    • Kroppen til for-sløyfen skal legge til et tegn fra den opprinnelige strengen til det som blir den omvendte strengen mens du bruker for-loop-telleren til å stille tegnposisjonen..
      for (var i = fwdStri.length - 1; i> = 0; i--) reverseString = newString + fwdStr [i]; 

Nok en gang, bør du bruke operasjonen ovenfor i en funksjon i skriptekoder. Enten du vil inkludere JavaScript som en ekstern fil eller innebygd kode, er det opp til deg. Slik ser løsningen ovenfor ut i aksjon:

   

Den store Reverso!

Nåværende streng: "Snu denne strengen!"

Omvendt funksjon myFunction () var fwdString = "Snu denne strengen!"; var reverseString = ""; for (var i = fwdString.length - 1; i> = 0; i--) reverseString + = fwdString [i]; // Alternativ til newString + fwdString [i] document.getElementById ("demo"). InnerHTML = reverseString;

Ovennevnte kode fungerer ved å gå gjennom den opprinnelige strengen i omvendt retning og klone den karakter for tegn. Hvis du ikke er interessert i å eksplisitt kaste strengen din i en matrise, kan du finne denne løsningen mer egnet for dine mål.


3. Snu strengen i JavaScript ved å bruke rekursjon

  1. Opprett en ny funksjon med en streng som parameter, f.eks.
    funksjon reverseString (str) 
  2. Opprett en i funksjonen hvis uttalelse som sjekker om strengen sendt til funksjonen er tom. Hvis det er sant, skal det returnere en tom streng, f.eks.
    hvis (str === "") returner "";
  3. Legg til en annet uttalelse.
  4. I brødteksten til den andre setningen, returner et rekursivt anrop til den gjeldende metoden med en delstreng av metodens strengparameter, fra det andre tegnet, dvs. str.substr (1). Legg til første bokstav i det nye underlaget, f.eks.
    annet return reverseString (str.substr (1)) + str.charAt (0);

Du bør kalle denne metoden fra en annen funksjon som er ansvarlig for å vise resultatene. Den komplette koden skal se ut slik:

   

Den store Reverso!

Nåværende streng: "Snu denne strengen!"

Omvendt funksjon myFunction () var str = this.reverseString ("Reverse this String!"); document.getElementById ("demo"). innerHTML = str; funksjon reverseString (str) if (str === "") return ""; ellers returnere reverseString (str.substr (1)) + str.charAt (0);

Rekursjon fungerer mye som en for loop, men du lurer JavaScript-logikken til å fungere for deg. I stedet for å legge til tegn på slutten av strengen, fester den den foran med hver løkke. Likevel er resultatene de samme.

Ovennevnte eksempler kan testes ved hjelp av Windows Notisblokk og en nettleser. Vi foreslår imidlertid at du bruker en plattformkoderedigerer eller et integrert utviklingsmiljø for å spare deg selv litt tid.

Hvordan snu en streng i et Javascript er et vanlig intervjuspørsmål. Derfor kan forståelse av det være avgjørende for din suksess som programvareutvikler.

Ikke desto mindre, gi oss beskjed om hvilken metode som fungerte best for deg i kommentarene nedenfor. Som alltid, takk for at du leser.

FAQ: Lær mer om JavaScript

For å fikse JavaScript ugyldig 0 i Chrome, ta en titt på vår detaljerte Fix javascript: void (0) feilguide.

For å fikse JavaScript-feilen i hovedprosessen, følg metodene som er presentert i vår nyttige Fix JavaScript i hovedprosessveiledningen.

Spleisemetoden i JavaScript legger til eller fjerner elementer fra en matrise.

Fix Windows Defender ber stadig om å skanne etter Windows 10-jubileumsoppdatering
Akkurat som de fleste funksjonene i Windows 10, fikk Windows Defender også noen forbedringer med jubileumsoppdateringen. Den mest bemerkelsesverdige f...
KB3179574 for Windows 8.1 forårsaker treg oppstartsproblemer
Microsoft har nylig presset utrullingen av oppdateringen i august for Windows 8.1, og gir en mengde systemforbedringer til operativsystemet. KB3179574...
Fix Ingen Wi-Fi, mobildataforbindelse i Windows 10 Mobile Anniversary Update
Windows 10 Mobile Anniversary Update er her, men det er ikke feilfritt. Når brukere tester ut det nye operativsystemet, støter de på forskjellige prob...