如何在JavaScript中使用此“缺少字母”功能?

安东尼奥·帕维切瓦茨·奥尔蒂斯

我正在Free Code Camp上应对“缺少字母”的挑战挑战表明以下内容:

在传递的字母范围内找到丢失的字母并返回。

如果所有字母都在该范围内,则返回undefined。

function fearNotLetter(str) {
  var newstr;
   for(var j = 0; j < str.length; j++){

       var previous = str.charCodeAt(j);
       var next = str.charCodeAt(j) + 1;


        if(next === false){
            newstr = String.fromCharCode(next);
        } else {
             return undefined;
       }
   }

  return newstr;
}

以为我一开始就钉了钉子,

   var previous = str.charCodeAt(j);
   var next = str.charCodeAt(j) + 1;

简单—如果next不正确,例如,的值next不是后一个字符或不是前一个字符,则返回newstr = String.fromCharCode(next);

提前致谢!

rjm27trekkie

试试这个:

function fearNotLetter(str) {
  for(var i = 0; i < str.length - 1; i++)
  {
    if(str.charCodeAt(i) + 1 != str.charCodeAt(i+1))
        return String.fromCharCode(str.charCodeAt(i) + 1);
  }
  return undefined;
}

通常,设置并返回不必要的变量不是一个好习惯。您也不会在if语句中测试任何条件。您实际上需要将第一个索引的字符值与第二个索引进行比较。另外,由于您需要比较2个索引,因此迭代必须在

[0, length - 2] with a + 1 for the secondary index

或者

[1, length - 1] with a - 1 for the secondary index

关于长度的注意事项-1:

考虑字符串“ abcd”中的字符:

a, b, c, d
0, 1, 2, 3

如果我尝试访问时在[0,3]上循环播放

str[i+1] // index 4

如果我尝试访问时,我将获得索引超出范围的异常,当i = 3时,或者如果我访问时获得索引超出范围的异常,则当我= 0时,

str[i-1] // index -1

这就是为什么我只迭代到给定边界之外的一个

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章