Visualizzazione dei risultati da 1 a 7 su 7

Discussione: Parole al contrario

  1. #1

    Parole al contrario

    Salve, premetto che sono alle prime armi ed ho un problema con un esercizio.

    codice HTML:
    function reverse() {        
    var word = prompt("Insert your word: ");    
    var inverse;
    for (var i = 0; i < word.length; i++){        
    inverse= word[i] + reverse;    
    };    
    document.writeln(inverse);
    }
    Uso questo script per capovolgere un parola ma quando la stampo oltre alla parola capovolta scrive anche un "indefined" .
    Sapete dirmi dove sbaglio? Non ci sono spazi quindi non capisco perche accade!

  2. #2
    word.length contiene la lunghezza in caratteri della parola, quindi, se parti da zero, devi iterare sino a word.length-1

  3. #3
    Utente di HTML.it L'avatar di willybit
    Registrato dal
    May 2001
    Messaggi
    4,367
    il ciclo è giusto, devi solo inizializzare la variabile inverse con stringa vuota
    codice:
    function reverse() {        
    	var word = prompt("Insert your word: ");    
    	var inverse='';
    	for (var i = 0; i < word.length; i++){        
    		inverse = word[i] + inverse;    
    	};    
    	document.writeln(inverse);
    }
    attenzione che nel tuo post hai scritto + reverse invece di + inverse
    codice:
    inverse= word[i] + reverse;

  4. #4
    Quote Originariamente inviata da willybit Visualizza il messaggio
    il ciclo è giusto, devi solo inizializzare la variabile inverse con stringa vuota
    codice:
    function reverse() {        
        var word = prompt("Insert your word: ");    
        var inverse='';
        for (var i = 0; i < word.length; i++){        
            inverse = word[i] + inverse;    
        };    
        document.writeln(inverse);
    }
    attenzione che nel tuo post hai scritto + reverse invece di + inverse
    codice:
    inverse= word[i] + reverse;
    La proprietà "length", se applicata ad un array, restituisce l'indice più alto, ma se applicata ad una stringa, come nel caso di Trommo, restituisce il numero dei caratteri della stringa.
    Ad esempio la stringa "ciao" avrà un length pari a 4, quindi per scorrerla bisognerà iterare da 0 a 3.

  5. #5
    Per la cronaca, esistono sistemi più eleganti per invertire una stringa, ad esempio:
    codice:
    var str='ciao';
    var arr=str.split('');//trasforma la stringa in un array
    arr.reverse();//inverte l'array
    var str_reverse=arr.join('');//trasforma l'array in una stringa
    alert(str_reverse);

  6. #6
    Utente di HTML.it L'avatar di willybit
    Registrato dal
    May 2001
    Messaggi
    4,367
    Quote Originariamente inviata da lucavizzi Visualizza il messaggio
    Ad esempio la stringa "ciao" avrà un length pari a 4, quindi per scorrerla bisognerà iterare da 0 a 3.
    che è quello che fa quel ciclo
    codice:
    for (var i = 0; i < word.length; i++)
    la condizione del for è i<word.length
    se length vale 4 il ciclo arriva fino a 3

  7. #7
    Quote Originariamente inviata da willybit Visualizza il messaggio
    che è quello che fa quel ciclo
    codice:
    for (var i = 0; i < word.length; i++)
    la condizione del for è i<word.length
    se length vale 4 il ciclo arriva fino a 3
    Sì, è vero, il problema è proprio l'inizializzazione della variabile inverse.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.