0
votes

Comment cette chaîne est-elle inversée exactement?

Pendant tout temps maintenant, j'ai étudié l'algorithme suivant comme moyen de résoudre la chaîne inverse: xxx

mais je viens de réaliser, je ne suis pas sûr exactement comment, ce qui signifie que la mécanique , si vous voulez, de savoir comment la chaîne est inverse juste par caractère + inversé; .

Je sais que je crée cette variable temporaire qui est redéclamé chaque fois que cette boucle à travers cette boucle de caractère , alors je dis de et de l'objet ibler, qui étant STR , un par un et définissez-le égal à la variable temporaire de < Code> caractère , alors je prends ce caractère et l'ajoutez-le sur la chaîne de inversé .

Comment est-ce que ce qui l'inversait chaîne? Je sais si je fais inversé = inversé + caractère; Cela me donnera simplement la chaîne non-inverse, mais quoi de l'inverser exactement? Un diagramme serait probablement utile.


3 commentaires

"Alors je prends ce caractère et l'ajoutez sur la chaîne de inversé " Votre confusion commence ici. Vous prenez ce caractère et ajout de la chaîne de inversé dessus


" Je sais que je crée cette variable temporaire redéclaré à chaque fois que cette boucle " - non, ce n'est pas le cas. L'attribution à une variable ne le redéclaira pas.


Ajoutez un peu de débogage et voyez ce qui se passe pendant l'exécution de la boucle. Cela devrait préciser comment cela fonctionne. Le débogage est votre frind ;-)


4 Réponses :


2
votes
str = 'abc';
reverse = '';

// iteration
reverse = 'a' + '';   // a
reverse = 'b' + 'a';  // ba
reverse = 'c' + 'ba'; // cba

0 commentaires

0
votes

Que se passe-t-il est la boucle pour la boucle est itérante sur chaque caractère de la chaîne. Chaque fois qu'il passe par la boucle, il régit le caractère actuel égal à «caractère», qu'il a ensuite collé devant tous les caractères traités précédemment.

Si vous voulez vraiment comprendre ce qu'il fait, essayez d'exécuter ceci: p>

p>

function reverse(str) {
    let reversed = '';
    for (let character of str) {
        console.info("current character being processed: " + character);
        console.info("reversed string before paste: " + reversed);
        reversed = character + reversed;
        console.info("reversed string after paste: " + reversed);
    }
    return reversed;
}

console.log('reverse("abcd") = ' + reverse("abcd"));


0 commentaires

1
votes

Essayons un test de test avec un simple console.log () code> . Finalement, vous devez vous apprendre à utiliser le débogueur qui a beaucoup plus de capacités que de simplement imprimer des valeurs à l'écran.

p>

function reverse(str) {
  let reversed = '';
  for (let character of str) {
    console.log(`'${character + reversed}' = '${character}' + '${reversed}'`);
    reversed = character + reversed;
  }
  return reversed;
}

reverse('world');


1 commentaires

Donc, console.log () peut être utilisé plus que d'accéder à des propriétés sur certains objets ou à la visualisation quelles données seront renvoyées à moi, merci.



0
votes

var str = "ABC,DEFG,H";
console.log(str);
var reversestr = "";
for(x in str){
    console.log('reversestr = '+ str[x] + "+" + reversestr);
    reversestr = str[x] + reversestr; 
}
console.log(reversestr);


0 commentaires