這是我第一次在這裏尋求幫助。我現在正在研究一個來自freecodecamp.com的問題,名爲「Missing Letters」,它要求我從字母字符串中返回缺少的字母,否則我會返回'undefined'。freecodecamp丟失字母錯誤
我的邏輯是先用一個for循環要經過所有的索引所提供的字符串,然後使用if語句找到實例,其中某一指數的信的統一減去其前身的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;
}
然而,如我試圖通過添加另一條件更徹底,代碼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);
}
else string = undefined;
}
return string;
}
我想問問你們爲什麼這樣?爲什麼計算機在我的if條件中優先於else語句?
非常感謝!
當你說「從else語句優先」 - 你什麼意思exactly-即返回什麼(什麼你期望)?例如,如果我調用函數fearNotLetter('abce'),則爲 – Fred
;我期望它會返回'd',並且在我添加else條件之前它就會返回。然而,在我輸入else條件之後,它就會直接進入else,並且在沒有通過if語句的情況下返回'undefined'。 –
除非你正在調試,否則你不知道它直接去了其他地方。也許它正確地設置了你的字符串,但後來在for循環中,行爲不是跳過,並且字符串被重置爲未定義。 –