You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

HackerRank Palindrome Index挑战JS函数返回undefined问题求解

问题原因
  • reverse函数定义错误:你声明的reverse函数接收string作为入参,但函数内部直接读取了外层的原始字符串s做反转,无论传入什么参数,返回结果都是原始字符串的反转,逻辑完全错误。
  • splice方法使用错误:Array.splice()的返回值是被删除的元素组成的数组,而非修改后的原数组。你代码中连续两次调用splice,第一次删除i位置元素后,第二次操作的已经是修改后的数组,且判断条件对比的是两次被删除的单个字符的反转结果,永远不可能符合预期。
  • 上述错误导致if判断始终不成立,循环结束后函数没有执行return语句,默认返回undefined。
修复方案

直接用字符串切片生成删除对应下标后的新字符串做判断,避免操作数组的逻辑错误:

function palindromeIndex(s) {
    const reverse = str => str.split('').reverse().join('');
    if (reverse(s) === s) return -1;
    for (let i = 0; i < s.length; i++) {
        const temp = s.slice(0, i) + s.slice(i + 1);
        if (reverse(temp) === temp) return i;
    }
    return -1;
}

console.log(palindromeIndex("racezcar")); // 正确输出4

内容的提问来源于stack exchange,提问作者Melanie Sigrid

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 06:54:02