前端题目---判断是否以元音字母结尾

判断是否以元音字母结尾

题目描述:给定字符串 str,检查其是否以元音字母结尾

1、元音字母包括 a,e,i,o,u,以及对应的大写
2、包含返回 true,否则返回 false

示例1

输入:'gorilla'
输出:true

题解:

  1. 根据之前学的方法,用if即可,但是这个方法太简单了,没有容纳到JS的知识点,当然也可以用switch case 的方法:

    function endsWithVowel(str) {
        var i=str.length-1;
        if(str[i]=='a'||str[i]=='e'||str[i]=='i'||str[i]=='o'||str[i]=='u'||str[i]=='A'||str[i]=='E'||str[i]=='I'||str[i]=='O'||str[i]=='U')
                 return true;
        return false;
    }
    

    运行时间1172ms 占用内存77828KB

  2. 获取字符串的最后一位字母—>将最后一位字母统一转换成小写—>在元音字母数组中查询是否包含最后一位字母。

    使用toLowerCase()方法将大写转化为小写,使用string.includes(str)方法查找string中是否含有str

    function endsWithVowel(str) {
        let word = str[str.length-1];
        return ['a','e','i','o','u'].includes(word.toLowerCase());
    }
    

    运行时间1228ms 占用内存77860KB

  3. 获取字符串的最后一位字母—>在元音数组中查看是否包含最后一个字母

    function endsWithVowel(str) {
        let word = str[str.length-1];
        return ['A','E','I','O','U','a','e','i','o','u'].includes(word);
    }
    

    运行时间1172ms 占用内存77884KB

  4. 利用正则表达式:

    $表示匹配结尾,/gi表示忽略大小写,test方法表示比较,用于检测一个字符串是否匹配某个模式

    function endsWithVowel(str) {
        var reg = /(a|e|i|o|u)$/i;
        return reg.test(str);
    }
    
  5. 利用逻辑表达式和indexOf()方法(比较字符是否在字符串里):

    function endsWithVowel(str) {
        return str&&("aeiouAEIOU".indexOf(str[str.length-1]) > -1);
    }
    

    运行时间2020ms 占用内存77872KB

    注意:includes 和test 方法有类似作用但用法不同:

    includes:

    查找字符串是否包含 “某个部分”:

    var str = "Hello world!";
    var patt = "world";
    var n = str.includes(patt);//判断str中是否有‘world’
    

    test:

    test() 方法用于检测一个字符串是否匹配某个模式.如果字符串中有匹配的值返回 true ,否则返回 false。

    var str="Hello world!";
    var patt=/world/g;
    return patt.test(str);//world(patt)是否在str中
    

    此处的JS可以用于移动端浏览器和PC端浏览器的判断:

    if( /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|OperaMini/i.test
       (navigator.userAgent) ) {
        document.write("移动")
    } else {
        document.write("PC")
    }
    
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值