Javascript Stringa Inversa

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

Una delle prime sfide di codice/algoritmo che abbiamo deciso di risolvere come ingegneri software in erba e sviluppatori web è vedere se siamo in grado di capire come invertire una stringa. Ricorda che una stringa è solo una raccolta di caratteri e spazi. Quello che dobbiamo fare è cercare di invertire, ad esempio, la stringa "Hello World!" e restituisci "!dlroW olleH". Esistono diversi modi in cui possiamo risolvere questo problema e ne tratteremo alcuni qui in questo articolo.

Scrivi una funzione, reverseString, che inverte una stringa e la restituisce. La stringa da invertire viene fornita come argomento nella funzione.

Soluzione n. 1: Ciclo For

La prima e probabilmente una delle soluzioni più semplici è per usare un ciclo for e tornare indietro nella stringa. Avremo bisogno di creare un’istanza, o creare, una variabile che contenga la nuova stringa invertita mentre passiamo ogni carattere nella stringa:

Assegnamoiall’ultimo indice (che viene calcolato quando prendiamo 1 dalla lunghezza della stringa) ‚áí questa è la nostra inizializzazione e servirà come primo indice che esamineremo. La seconda parte del ciclo for è la nostra condizione‚áíquesto dice al ciclo quando fermarsi. La terza e ultima parte del ciclo for è quanto il nostro i aumenteràdopo il completamento del ciclo e la condizione è ancora vera: io‚Äì essenzialmente prende la nostra i e la riassegna a i ‚Äì 1;

Mentre eseguiamo il ciclo di ogni iterazione, prendiamo ogni carattere in str[i] e lo aggiungiamo a newStr. Quindi restituiamo la newStr al di fuori del nostro ciclo for e terminiamo la funzione.

Provalo tu stesso nell’editor di codice:


Soluzione n. 2: metodo map ES6 di JavaScript

JavaScript ha un metodo array integrato che era nuovo per ES6 chiamato map . Ciò che fa è restituire un nuovo array con i valori specificati. Il metodo map ha tre parametri: l’elemento corrente, l’indice dell’elemento e una copia dell’array da cui proviene. Useremo gli ultimi due parametri nella soluzione.

La prima cosa che dobbiamo fare è dividere la stringa in un array usando il metodo split(). Se dividiamo su una stringa vuota, il metodo ci darà un array con ogni singolo carattere al suo interno. Quindi useremo quel nuovo array per mappare sopra.

Dato che vogliamo essenzialmente scambiare gli indici, dobbiamo capire l’indice del carattere che vogliamo mettere al posto dell’indice corrente . Questo sarà il carattere che restituiremo.

Per farlo, troviamo la lunghezza dell’array, meno uno perché siamo un array in base zero, e quindi togliamo la posizione di l’indice attuale. L’array[swapIndex] che restituiamo prende essenzialmente il posto dell’indice corrente. Questo ci dà un array di caratteri invertiti in una stringa.

L’ultima cosa che dobbiamo fare è unire l’array insieme in una stringa e restituirlo.

Prova la soluzione nell’editor di codice!


La cosa importante da ricordare è che map restituisce un nuovo array ‚Äì quindi non stiamo modificando lo str/array originale passato.

Soluzione n. 3: metodo JavaScript integrato

Questo metodo per risolvere questo problema di codice utilizza le funzioni/metodi integrati split() , reverse() e join() per risolverlo in questo one-liner:

Prova eseguire il codice sottostante e testarlo personalmente per vederlo funzionare!

Essenzialmente ciò che fa il metodo reverse() integrato è map() (il metodo che abbiamo delineato nella nostra soluzione precedente) sotto il cofano; tuttavia, muta l’array originale invece di restituirne uno nuovo poiché inverte sul posto. Se stai risolvendo un problema più grande, potresti dover creare una copia di f l’array originale in modo da poter ancora accedere all’originale se necessario.

Questi non sono gli unici modi definitivi per risolvere questo problema - questi sono solo alcuni dei modi più popolari per risolverlo. Sperimenta e vedi se riesci a trovare altre soluzioni per te stesso nell’editor di codice sopra. Modifica la funzione reverseString() e nient’altro se vuoi vederla sullo schermo.