freecodecamp缺少字母bug

时间:2016-09-07 01:55:16

标签: javascript unicode

这是我第一次在这里寻求帮助。我现在正在解决freecodecamp.com中一个名为“Missing Letters”的问题,它要求我从字母字符串中返回丢失的字母,否则我将返回'undefined'。

我的逻辑是首先使用for循环遍历提供的字符串中的所有索引,然后使用if语句查找某个索引的字母的unicode减去其前任的unicode大于1的实例。

我能够使用此代码块解决它:

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;

}

然而,当我试图通过添加另一个条件来更彻底时,代码无效:

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;

} 

我想问你们为什么会这样?为什么计算机优先于else语句而不是if条件?

非常感谢!!

1 个答案:

答案 0 :(得分:0)

所以按照你的方法,我认为你会想要适应它

function fearNotLetter(str) {

var string = undefined; //initialize outside the loop to undefined  

for (i=0;i<str.length;i++) {
if (str.charCodeAt(i+1)-str.charCodeAt(i)>1) {

    string = String.fromCharCode(str.charCodeAt(i)+1);

 } //no else needed

}

return string;

}