我正在JS 中做一些作業,並且我編寫了一個函數來比較字串(str) 的結尾,如果它與「目標」字串匹配,則返回true 或false(這可以更容易完成,但是這個我選擇了這樣的混亂方式):
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; }
所以,這個函數確實有效,但是看著它,我不明白為什麼......
如果我跑步
confirmEnding("Testing123", "tin5123");
在我看來它應該回傳 true,但是 for 迴圈在 for 迴圈第四次迭代後並沒有將變數「valid」的值改回 true? (for 循環不應該也迭代 5、6 和 7 並返回“true”以獲得“valid”嗎?)
我從 OpenAI 得到的答案是該函數正在檢查“target”是否與“str”的末尾匹配。如何?我看不到任何地方我已做出任何具體指示來執行此操作...
函數如何決定傳回變數「有效」的哪個值?它是否會遍歷所有內容,並且僅在 ALL i 為 true 時才返回“if: valid = true”?為什麼?
謝謝
它之所以有效,是因為它從最後開始
為什麼還要麻煩循環?