js 初级脚本算法(前端学院app上整理)

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>
</head>
<body>
<script>
    // 翻转字符
    var str="abcdefg";
    console.log(str.split("").reverse().join())
    // 阶乘
    function f(num){
        if(num==0){
            return 1;
        }
        return  num*f(num-1);
    }
    console.log(f(5))
       // 回文字符串   忽略空格和空字符串
       var str1="abcd d '' cba";
       str=str1.replace(/\s+/g,"");
       d = str.replace(/\'/g, "");
       s=d.toLocaleLowerCase();
       function huiwen(str){
           for(var i= 0,j=str.length-1;i<j;i++,j--){
               if(str.charAt(i)!==str.charAt(j)){
                   return false
               }
               return true;
           }
       }

   console.log(huiwen(s))
   // 寻找最长单词算法挑战
    var str2="I am form northwest university";
    var arr2=str2.split(" ");
    console.log(arr2)
    for(key in arr2){
        var max=0;
        var len=arr2[key].length;
        if(max<len){
            var temp=len;
            len=max;
            max=temp;
        }
    }
    console.log(max)
    // 设置首字母大写算法挑战
    var str3="I am form northwest university";
    var arr3=str3.split(" ");
    for(var i=0;i<arr3.length;i++){
        arr3[i]=arr3[i][0].toLocaleUpperCase()+arr3[i].slice(1).toLowerCase();
    }
    console.log(arr3);
    // 寻找数组中的最大值算法
    var arr4=[[1,6,3],[3,4,5],[3,7],[8,9]];
    var max=0;
    var b=[];
    for(var i=0;i<arr4.length;i++){
        for(j=0;j<arr4[i].length;j++){
            if(max<arr4[i][j]){
                var temp=arr4[i][j];
                arr4[i][j]=max;
                max=temp;
            }
        }
        b.push(max);
    }
    console.log(b);
   // 确定末尾字符算法
    function confirmEnding(str,target){
         var arr1=str.split("");
         var arr2=target.split("");
         for(var i=arr2.length-1,j=arr1.length-1;i>=0;i--,j--){
             if(arr1[j]!=arr2[i]){
                 return false
             }
         }
        return true;
    }
    console.log(confirmEnding("I am form northwest university","ty"))
    // 重复操作算法  例如repeat("abc",2) 应返回abcabcabc
     function repeat(str,num){
          var string="";
          if(num==0){
              string=str;
          }
          else{
              for(var i=0;i<num;i++){
                  string+=str
          }
          }
          return string;
     }
       console.log(repeat("abc",2))
    // 字符串截取算法  如果字符串长度比比给定的参数num长,则把多余的部分用...来表示*/
        function truncate(str,num) {
            if(str.length<=num){
                return str;
            }else if(str.length>num&&num<=3){
                return str.slice(0,num)+"...";
            }else if(str.length>num&&num>3){
                return str.slice(0,num-3)+"...";
            }
            return str;
        }
           console.log(truncate("A-tisket a-tasket A green and yellow basket", 11));
    /*数组分割算法 chunk([1,2,3,4],2)=[[1,2],[3,4]]*/
    function chunk(arr,size){
        var c=[];
        for(var i=0;i<arr.length;i=i+size){
            c.push(arr.slice(i,i+size));
        }
        return c;
    };
    console.log(chunk([1,2,3,4],2));
    // 数组截断算法
    function slasher(arr,num) {
        arr.splice(0,num)
        return arr;
    }
    console.log(slasher([1,2,3,4],2))
    //数组查询算法
     function  mutation(arr) {
         var str1=arr[0];
         var str2=arr[2];
         for(var index in str2){
             if(str1.indexOf(str2[index])==-1){
                 return false;
             }
         }
         return true;
     }
     console.log(mutation(["hello","hey"]))
    // 删除数组中所有的假值 假值包括null undefined 0 "" NaN  false
    function  bouncer(arr) {
         return arr.filter(Boolean);
    }
    console.log(bouncer([0,NaN,false,"hello",1,,null,2,true]))
    //去除数组中多个值算法   destroyer([1, 2, 3, 5, 1, 2, 3], 2, 3) 返回[1,5]
    function destroyer(arr) {
        var arg=arguments;
        for(var i=1;i<arg.length;i++){
            arr=arr.filter(function (item) {
                return arg[i]!==item;
            })
        }
        return arr;
    }
    console.log(destroyer([1, 2, 3, 5, 1, 2, 3], 2, 3));
    //数组排序并插入值算法
    function where(arr,num) {
        arr.push(num)
        arr.sort()
        return  arr.indexOf(num)
    }
    console.log(where([1,2,3,4],1.5))

    //位移密码算法 已常见的ROT13密码 字母会移动13个位置 如a-n b-o
       function rot13(str){
                var n=0;
                var num=0;
                var arr=new Array();
                for(var i=0;i<str.length;i++){
                    n=str.charCodeAt(i);
                    if(n>=65&&n<=90){
                        if(n>=78&&n<90){
                            num=n-13;
                            arr[i]=String.fromCharCode(num);
                        }else{
                            num=90-13+n-65+1;
                            arr[i]=String.fromCharCode(num);
                        }
                    }else{
                        arr[i]=String.fromCharCode(n);
                    }
                }
                var string=arr.join("");
                return string;
       }
       // Change the inputs below to test
        console.log(rot13("SERR CVMMN!"));
</script>
</body>
</html>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值