我试图在字符串中查找重复的字符并使它正常工作,但是当我输入相邻的字符时出现问题。我的函数最终输出第一个连续重复的char。知道为什么我的第一个条件没有执行吗?预期的输出应为“ C”,但我最终得到“ B”



    function findFirstRepeatedChar(s){
      for(let i=0; i<s.length; i++){
        if(s[i] == s[i+1]){
          return s[i];
        }else if(s.indexOf(s[i], i+1) != -1){
          return s[i];
        }
      }
      return false;
    }
    console.log(findFirstRepeatedChar("ABCCBD"));
    //console.log(findFirstRepeatedChar("ABCDB"));
    //console.log(findFirstRepeatedChar("ABCDE"));

最佳答案

您返回的是第一个顺序匹配结果,而不是第一个相邻结果。存储非相邻匹配项并在函数末尾将其返回将使适当性返回第一个相邻匹配项。

function findFirstRepeatedChar(s){
    var ot = false;
    for(let i=0; i<s.length; i++){

      if(s[i] == s[i+1])  {
         return s[i];
       }   else if(s.indexOf(s[i], i+1) != -1){
         ot = s[i];
       }
     }

       return ot;

}
console.log(findFirstRepeatedChar("ABCCBD"));

09-25 20:39