Javascript omgekeerde tekenreeks

| | | | | | | | | | | | | | | | | | | | | | | | | |

Een van de eerste uitdagingen op het gebied van code/algoritmen die we als beginnende software-engineers en webontwikkelaars wilden aanpakken, is kijken of we erachter kunnen komen hoe we een string kunnen omkeren. Onthoud dat een ketting slechts een verzameling tekens en spaties is. Wat we moeten doen is proberen om bijvoorbeeld de string "Hallo allemaal!" om te draaien. " En terug"! EDNOM olleH . Er zijn verschillende manieren waarop we dit probleem kunnen oplossen en we zullen er hier een aantal in dit artikel bespreken.

Schrijf een functie ReverseString, die een string omkeert en teruggeeft. De string die moet worden omgekeerd, wordt als argument in de functie opgegeven.

Oplossing n. 1: Een lus maken

De eerste en waarschijnlijk een van de gemakkelijkste oplossingen is om een lus te gebruiken en terug te gaan door de keten. We zullen een variabele moeten instantiëren of maken die de nieuwe omgekeerde tekenreeks bevat die we elk teken in de tekenreeks doorgeven:

wijs i toe aan de laatste index (die wordt berekend als we 1 van de lengte van de string nemen) ‚áí dit is onze initialisatie en het zal dienen als de eerste aanwijzing waar we naar zullen kijken. Het tweede deel van de lus is onze status ‚áí die de lus vertelt wanneer hij moet stoppen. Het derde en laatste deel van de lus is hoeveel onze i toeneemt nadat de lus is voltooid en de voorwaarde nog steeds waar is: I- neemt in feite onze i en wijst deze opnieuw toe op - 1;

Terwijl we door elke iteratie lopen, nemen we elk str [i]-teken en voegen het toe aan newStr. We gaan dan terug naar de newStr buiten onze lus en sluiten de functie af.

Probeer het zelf in de code-editor:

Oplossing nr. . 2: ES6 JavaScript-kaartmethode van

JavaScript heeft een ingebouwde arraymethode die nieuw was voor ES6, genaamd map . Wat het doet, is een nieuwe array retourneren met de opgegeven waarden. De kaartmethode heeft drie parameters: het huidige element, de elementindex en een kopie van de array waar het vandaan komt. We zullen de laatste twee parameters in de oplossing gebruiken.

het eerste dat we moeten doen is de tekenreeks in een array met behulp van de split () methode. Als we delen op een lege tekenreeks, geeft de methode ons een array met alle tekens erin. We zullen daarom deze nieuwe reeks à la carte hierboven gebruiken.

Sinds we willen eigenlijk indexen omwisselen, we moeten de hint begrijpen van het teken dat we willen instellen van de huidige index. Dit zal het teken zijn dat we retourneren.

Om dit te doen, vinden we de lengte van de array, min één omdat we een op nul gebaseerde array zijn, trek dan de positie van de huidige index af. De array [swapIndex] waar we op terugkomen, neemt in feite de plaats in van de huidige index. Dit geeft ons een array van omgekeerde tekens in een string.

Het laatste wat we moeten doen is om de array samen te voegen in een string en terug te sturen.

De oplossing testen in de code-editor!

wat belangrijk is voor onthoud is dat de kaart een nieuwe array retourneert - dus we wijzigen de oorspronkelijke str / array niet.

< h4> Oplossing # 3: Ingebouwde JavaScript-methode

Deze methode om dit codeprobleem op te lossen gebruikt ingebouwde functies / methoden split (), inverse () en join () om het op te lossen in deze one-liner:

Probeer de onderstaande code uit te voeren en test het persoonlijk van het werk!

wat de ingebouwde reverse () is kaart () (de methode die we beschreven in onze vorige oplossing) onder de motorkap; maar , muteer de originele array in plaats van een nieuwe terug te geven terwijl deze op zijn plaats klapt Als u. een probleem oplost, maar groter is, moet u mogelijk een kopie van de originele tabel maken, zodat u indien nodig nog steeds toegang hebt tot het origineel.

dit zijn niet de alleen definitieve manieren om dit op te lossen - dit zijn slechts enkele van de meest populaire manieren om dit experiment op te lossen en kijk of je andere oplossingen voor jezelf kunt vinden in de code-editor hieronder - hierboven Wijzig de .. ReverseString () en niets anders als je het op het scherm wilt zien.