Saya sedang membuat beberapa kerja rumah dalam JS, dan saya menulis fungsi yang membandingkan penghujung rentetan (str) dan mengembalikan benar atau salah jika ia sepadan dengan rentetan "sasaran" (ini boleh dilakukan dengan lebih mudah, tetapi yang ini Saya Pilih macam huru hara):
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; }
Jadi, fungsi ini memang berfungsi, tetapi melihatnya, saya tidak faham mengapa...
Jika saya berlari
confirmEnding("Testing123", "tin5123");
Nampaknya pada saya ia sepatutnya kembali benar, tetapi gelung for tidak mengubah nilai pembolehubah "sah" kembali kepada benar selepas lelaran keempat gelung for? (Bukankah gelung for juga harus berulang ke atas 5, 6 dan 7 dan mengembalikan "benar" untuk menjadi "sah"?)
Jawapan yang saya dapat daripada OpenAI ialah fungsi itu menyemak sama ada "sasaran" sepadan dengan penghujung "str". bagaimana? Saya tidak dapat melihat di mana-mana yang saya telah memberikan arahan khusus untuk melakukan ini...
Bagaimanakah fungsi menentukan nilai pembolehubah pulangan yang "sah"? Adakah ia berulang melalui segala-galanya dan hanya mengembalikan "jika: sah = benar" jika SEMUA i adalah benar? kenapa?
Terima kasih
Ia berkesan kerana ia bermula pada penghujung
Kenapa perlu bersusah payah dengan gelung?