首页 > 解决方案 > 陷入回文迭代

问题描述

我个人无法弄清楚为什么这个函数会这样工作。变量“i”的值是每次迭代对吗?那么“str[str.length-i-1]”中的“i”是否意味着在从长度减去1之后跳过由split生成的数组元素之一?

例如,对于我的设想,一旦第二次迭代到来,它不会是:“racecar[7-2-1]”,因为 i 是 2?那么它会是racecar[4] 对吗?然而,racecar 是回文,所以它确实返回 true;许多挑战视频并没有解释为什么“i”会这样工作。任何有经验的帮助将不胜感激!

function palindrome2(str){
    return str.split('').every((char, i)=> {
        console.log(i)
        return char === str[str.length-i-1]
    });
}

console.log(palindrome2("racecar"))

标签: javascript

解决方案


哦,我明白了!我一步一步把它拿出来,现在它更有意义了!“i”的控制台日志让我更加困惑..所以我只是在每次迭代后替换了我能做的一切。每个字母都匹配它迭代的每个索引!呜呼

function palindrome2(str){
    return str.split('').every((r, 0)=> {
        return r === racecar[7-0-1]
    });

}function palindrome2(str){
    return str.split('').every((a, 1)=> {
        return a === racecar[7-1-1]
    });
}

}function palindrome2(str){
    return str.split('').every((c, 2)=> {
        return c === racecar[7-2-1]
    });
}

推荐阅读