2017-09-01 6 views
0

以下は「不足している手紙」挑戦のための私のコードです。コンソールログには、「未定義」とdの不足している文字が表示されました。私は何が起こったのか分からない。誰か助けてくれますか?ありがとうございました!私のコードで何が問題になっていますか?(不足している文字 - freecodecamp)?

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); 
 
}

答えて

0
あなたのループはI = 1から開始

でスタート。 i-1は最低でも0です.0で開始すると、i-1は-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; 
    } 

} 
+0

ありがとうございました! – ChuChu

0

ときi = 0str.charCodeAt(-1)の声明

str.charCodeAt(i-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); 

}

関連する問題