Je fais quelques devoirs en JS et j'ai écrit une fonction qui compare la fin d'une chaîne (str) et renvoie vrai ou faux si elle correspond à la chaîne "cible" (cela pourrait être fait plus facilement, mais celui-ci, je choisis d'une manière si chaotique) :
function confirmEnding(str, target) { let valid = true; console.log(str.length); console.log(target.length); for(let i = 0; i < target.length; i++){ if (str.substring(str.length - (i+1)) == target.substring(target.length - (i+1))){ valid = true; } else{ valid = false; } } console.log(valid); return valid; }
Donc, cette fonction fonctionne, mais en y regardant, je ne comprends pas pourquoi...
Si je cours
confirmEnding("Testing123", "tin5123");
Il me semble qu'il devrait renvoyer true, mais la boucle for ne modifie pas la valeur de la variable "valid" en true après la quatrième itération de la boucle for ? (La boucle for ne devrait-elle pas également parcourir 5, 6 et 7 et renvoyer « vrai » pour obtenir « valide » ?)
La réponse que j'ai obtenue d'OpenAI est que la fonction vérifie si "target" correspond à la fin de "str". comment ? Je ne vois nulle part que j'ai donné des instructions spécifiques pour ce faire...
Comment une fonction décide-t-elle quelle valeur de la variable de retour est « valide » ? Est-ce qu'il parcourt tout et renvoie uniquement « if : valid = true » si ALL i est vrai ? Pourquoi?
Merci
Ça marche parce que ça commence par la fin
Pourquoi s'embêter avec le bouclage ?