codewars练习记录1

#####【6ku】Detect Pangram
A pangram is a sentence that contains every single letter of the alphabet at least once. For example, the sentence “The quick brown fox jumps over the lazy dog” is a pangram, because it uses the letters A-Z at least once (case is irrelevant).

Given a string, detect whether or not it is a pangram. Return True if it is, False if not. Ignore numbers and punctuation.

某度翻译:
拼字是一个包含字母表中每个字母至少一次的句子。例如,句子“the quick brown fox jumps over the lazy dog”是一个连字,因为它至少使用了一次字母a-Z(大小写无关)。
给定一个字符串,检测它是否是一个pangram。如果是,则返回True;如果不是,则返回False。忽略数字和标点符号。

解一:

/**
• 将字符串统一转换成大(小)写
• 求出所有字母的ASCII编码
• indexOf检索是否含有子串,否 则返回-1
**/
function isPangram(string){
var arr = string.toUpperCase().split('').map(x => x.charCodeAt())
  for (let i = 65; i <= 90; i++) {
    if (arr.indexOf(i) == -1) {
      return false
    }
  }
  return true
}

解二:

/**
• 取出字符串内所有的字母并统一转换成大(小)写
• set方法去重
• 计算长度是否为26
**/
function isPangram(string){
  return [...new Set(string.replace(/[^a-zA-Z]/g, '').toUpperCase())].length == 26
}

解三:

/**
• every() 方法用于检测数组所有元素是否都符合指定条件
**/
function isPangram(string){
  return "abcdefghijklmnopqrstuvwxyz".split("").every(function(x){
    return string.toLowerCase().indexOf(x) !== -1;
  });
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值