js数组和字符串间的综合应用

最近遇到CVTE的一道编程题为:编写一个函数fn(str),将驼峰命名的字符串转换为“aa_aa”,例如(HelloWorld转化为hello_world).
编写过程如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
    <script>

         function check_upper(obj){
             if(/^[A-Z]+$/.test(obj)){
                return true;
             }
         }

         function upperIndex(str){
               var arr=[];
            for(var i=0; i<str.length; i++)
            {
               if(check_upper(str[i]))
               {
                 arr.push(i);
               }
            }
         return arr;
         }

        function fn(str){
        var arr=str.split('');
        var aIndex=upperIndex(str);   //记录大写字母索引

      for(var i = 1; i < aIndex.length; i++){
        arr.splice(aIndex[i],0,'_');
        aIndex=upperIndex(arr);    //每插入一个‘_’需重新获取大写字母索引
        console.log(aIndex);
   }
   console.log(str);
   var Str=arr.join('').toLowerCase();
   console.log(Str);
}
fn('HelloWorldLoPsPa');
    </script>
</body>
</html>

本题的重点是:1.字符串和数组的相互转换;2.字符的大小写判断;3.数组中每插入一个字符需重新获取字符串中大写字母的索引值。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值