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 才是代表字符串的最后一位;
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 第5章 引用类型(返回首页) 本章内容 使用对象 创建并操作数组 理解基本的JavaScript类型 使用基本类型...
    大学一百阅读 3,272评论 0 4
  • 1、charCodeAt方法返回一个整数,代表指定位置字符的Unicode编码。 strObj.charCodeA...
    可乐可乐请加冰阅读 449评论 0 0
  • 去空格或者其他字符串 trim() :去除首尾空白字符 空白字符包括:\t,\n,"",\0,\xoB rtrim...
    Demoer阅读 410评论 0 2
  • 我今天看见一个人,她有着快及腰的黑发,穿着黑色的长款羽绒衣。在地铁上,她站在我前面,一手拉着扶杆,有小孩上来的时候...
    李氏喜乐阅读 482评论 0 0
  • 晚上豆问我爸爸回来吗?我说,来的,已经在路上了,不过等爸爸回来也行你已经睡着了。(周六爸爸答应周日带豆去玩,可临...
    豆豆妈1234阅读 164评论 0 0