使用arrow functions判断字符串是否为Palindrome,代码无输出如何解决
回文判断代码问题修复
存在的问题
- 核心问题:仅定义了
isPalindrome箭头函数,没有主动调用,自然不会有执行输出 - 逻辑缺陷:判断出字符不匹配时没有终止函数执行,会同时打印"Not Palindrome"和"Palindrome"
- 冗余判断:
midPoint未取整,循环条件i < name.length完全多余,i < midPoint已经保证不会越界
修正后可运行代码
var name = prompt("Enter Name: "); const isPalindrome = name => { // 可选:统一转小写+去首尾空格,避免大小写/首尾空格导致的判断误差,不需要可以删除 const str = name.trim().toLowerCase(); const midPoint = Math.floor(str.length / 2); for (let i = 0; i < midPoint; i++) { if (str[i] !== str[str.length - 1 - i]) { console.log("Not Palindrome"); return; } } console.log("Palindrome"); } // 必须调用函数才会执行判断逻辑 isPalindrome(name);
内容的提问来源于stack exchange,提问作者user16659888
相关产品推荐
相关产品推荐

