題目
從傳遞進(jìn)來(lái)的字母序列中找到缺失的字母并返回它。
如果所有字母都在序列中,返回 undefined。
如果你被卡住了,記得開(kāi)大招 Read-Search-Ask。嘗試與他人結(jié)伴編程、編寫(xiě)你自己的代碼。
這是一些對(duì)你有幫助的資源:
String.charCodeAt()
String.fromCharCode()
function fearNotLetter(str) {
return str;
}
fearNotLetter("abce");
思路
- 第一反應(yīng)就是要將字母轉(zhuǎn)為數(shù)字,需要用到 charCodeAt();
- 然后看最后一位字母代表的數(shù)字減去第一位字母代表的數(shù)字是否和這一串字符的長(zhǎng)度相等;
- 如果相等,則說(shuō)明這串字符不缺;如果不相等,則循環(huán)添加字母,這就要用到 fromCharCode() 將數(shù)字轉(zhuǎn)回字母了;
解答
function fearNotLetter(str) {
if ((str.charCodeAt(str.length-1)-str.charCodeAt(0)) === str.length-1) {
return undefined;
}
for (var i=0;i<=str.length; i++){
if (str.charCodeAt(i+1)-str.charCodeAt(i) !=1){
return String.fromCharCode(str.charCodeAt(i)+1);
}
}
}
fearNotLetter("abce");
- 這里我一開(kāi)始寫(xiě)錯(cuò)了一個(gè)地方,就是
java script (str.charCodeAt(str.length-1)-str.charCodeAt(0)) === str.length-1這一句;一開(kāi)始的時(shí)候沒(méi)有 -1 ,后來(lái)報(bào)錯(cuò);- 后來(lái)才坑爹的記起來(lái),從0開(kāi)始才是第一位,所以字符串長(zhǎng)度需要 -1 才是代表字符串的最后一位;