ここは私の最初のヘルプを求めています。私は現在、「Missing Letters」と呼ばれるfreecodecamp.comの問題に取り組んでいます。この問題は、アルファベット順の文字列から不足している文字を返すように求めています。そうでなければ、「undefined」を返します。freecodecampが不足している文字のバグ
私のロジックは、最初に特定のインデックスの文字のUnicodeのマイナスその前身のUnicodeは1
より大きいインスタンスを見つけるためにif文を使用し、その後、指定した文字列内のすべてのインデックスを通過するforループを使用することです私はこのコードブロックを使用して、それを解決することができた:
function fearNotLetter(str) {
var string;
for (i=0;i<str.length;i++) {
if (str.charCodeAt(i+1)-str.charCodeAt(i)>1) {
string = String.fromCharCode(str.charCodeAt(i)+1);
}
else string = undefined;
}
return string;
}
:私は、別の条件を追加することによって、より完全であるとコードdeosn't作業を試みたように、しかし
function fearNotLetter(str) {
var string;
for (i=0;i<str.length;i++) {
if (str.charCodeAt(i+1)-str.charCodeAt(i)>1) {
string = String.fromCharCode(str.charCodeAt(i)+1);
}
}
return string;
}
を
私はあなたになぜこれが当てはまるか尋ねたいと思いますか? if条件よりもelse文の方が優先されるのはなぜですか?
ありがとうございます!
に適合するようにしたいと思います - あなたは何を返されたものexactly-すなわち意味(と何をすべきかあなたは期待しましたか? – Fred
たとえば、関数fearNotLetter( 'abce')を呼び出した場合、私はそれが 'd'を返すと期待し、それがelse条件を追加する前に行います。しかし、else条件をタイプした後は、elseに直接移動し、ifステートメントを実行しなくても 'undefined'を返します。 –
あなたがデバッグしていない限り、あなたはそれが他の人にまっすぐに通ったのかどうかはわかりません。おそらくそれはあなたの文字列を正しく設定しましたが、あとであなたのforループの動作はスキップではなく、文字列は未定義にリセットされました。 –