Ich mache gerade ein paar Hausaufgaben in JS und habe eine Funktion geschrieben, die das Ende einer Zeichenfolge (str) vergleicht und true oder false zurückgibt, wenn sie mit der „Ziel“-Zeichenfolge übereinstimmt (dies könnte einfacher gemacht werden, aber diese hier habe ich ausgewählt so chaotisch):
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; }
Diese Funktion funktioniert also, aber wenn ich sie mir ansehe, verstehe ich nicht, warum...
Wenn ich renne
confirmEnding("Testing123", "tin5123");
Mir scheint, dass es „true“ zurückgeben sollte, aber die for-Schleife ändert den Wert der Variablen „valid“ nach der vierten Iteration der for-Schleife nicht wieder in „true“? (Sollte die for-Schleife nicht auch 5, 6 und 7 durchlaufen und „true“ zurückgeben, um „valid“ zu erhalten?)
Die Antwort, die ich von OpenAI erhalten habe, ist, dass die Funktion prüft, ob „target“ mit dem Ende von „str“ übereinstimmt. Wie? Ich kann nirgends sehen, dass ich dafür eine konkrete Anleitung gegeben habe...
Wie entscheidet eine Funktion, welcher Wert der Rückgabevariablen „gültig“ ist? Durchläuft es alles und gibt nur „if: valid = true“ zurück, wenn ALLE i wahr sind? Warum?
Danke
它之所以有效,是因为它从末尾开始
为什么还要麻烦循环呢?