FreeCodeCamp筆記之:Missing letters

题目

从传递进来的字母序列中找到缺失的字母并返回它。
如果所有字母都在序列中,返回 undefined。
如果你被卡住了,记得开大招 Read-Search-Ask。尝试与他人结伴编程、编写你自己的代码。
这是一些对你有帮助的资源:
String.charCodeAt()
String.fromCharCode()

function fearNotLetter(str) {
  return str;
}
fearNotLetter("abce");

思路

  1. 第一反应就是要将字母转为数字,需要用到 charCodeAt();
  2. 然后看最后一位字母代表的数字减去第一位字母代表的数字是否和这一串字符的长度相等;
  3. 如果相等,则说明这串字符不缺;如果不相等,则循环添加字母,这就要用到 fromCharCode() 将数字转回字母了;

解答

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");
  • 这里我一开始写错了一个地方,就是 java script (str.charCodeAt(str.length-1)-str.charCodeAt(0)) === str.length-1 这一句;一开始的时候没有 -1 ,后来报错;
  • 后来才坑爹的记起来,从0开始才是第一位,所以字符串长度需要 -1 才是代表字符串的最后一位;

你可能感兴趣的:(FreeCodeCamp筆記之:Missing letters)