我的代码有什么问题(缺少字母 - freecodecamp)?

时间:2017-09-01 17:59:45

标签: javascript

以下是我的“遗失字母”挑战代码。控制台日志显示'undefined'和缺少的字母d。我不明白发生了什么。谁能给我一些建议?谢谢!

var str ="bce"; 
for (var i=0;i< str.length;i++){

    if(str.charCodeAt(i) - str.charCodeAt(i-1) !==1){
      var  missing = String.fromCharCode(str.charCodeAt(i-1)+1);
      console.log(missing);
     }
    else
     console.log(undefined);
}

3 个答案:

答案 0 :(得分:0)

i = 0时,您的if语句可能会出现越界错误

str.charCodeAt(i-1)

str.charCodeAt(-1)的索引不存在。

答案 1 :(得分:0)

您的代码在第一个循环中查找索引-1,将其更改为此。从1开始,而不是0

for (var i=1;i< str.length;i++){

if(str.charCodeAt(i) - str.charCodeAt(i-1) !==1){
  var  missing = String.fromCharCode(str.charCodeAt(i-1)+1);
  console.log(missing);
 }
else
 console.log(undefined);

}

答案 2 :(得分:0)

在i = 1时开始你的循环;所以i-1至少为0.当你从0开始时,i-1变为-1。序列中的第一个字母是否可以丢失字母?如果你只需要找到一个缺失的数字,你可以记录它并打破循环。

var str ="bce"; 
for (var i=1;i< str.length;i++){

    if(str.charCodeAt(i) - str.charCodeAt(i-1) !==1){
      var  missing = String.fromCharCode(str.charCodeAt(i-1)+1);
      console.log(missing);
      break;
     }

}