代码改变世界

JS题目

2019-08-04 23:59  张海峰999  阅读(181)  评论(0编辑  收藏  举报

冒泡排序

function bubbleSort(arr){
      //外层循环控制轮数 r 从0 开始到arr.length
        for(var r = 0; r <arr.length;r ++){
         //内层循环控制遍历每个元素i 从0开始,到arr.length-r
         for(var i = 0; i < arr.length-r;i++){
           //如果arr中i位置的值>i+1位置的值
           if(arr[i] > arr[i+1]){
            //交换arr中i位置和i+1位置的值
            arr[i] ^= arr[i+1];
            arr[i+1] ^= arr[i];
            arr[i] ^= arr[i+1];
           }
          }
         }
        }
        var arr = [2,5,7,3,6,4,1];
        console.log(String(arr));
        bubbleSort(arr);
        console.log(String(arr));

arr.sort()

自定比较函数器

function cmp(a,b){
         return a-b;
        }
        // 将比较器函数作为对象传入sort 方法中
        arr.sort(cmp);//直接写cmp,不能带();
 console.log(arr);

var arr1 = [9,8,7,6,5,4,3,2,1,0];
         arr1.sort(function(a,b){return a-b});//匿名函数
        console.log(arr1);

 

first in last out  先进后出
        var arr = [];
        for(var i = 1; i<= 5;
         i++){
        //arr.push  在数组的末尾添加新的元素
           arr.push("乘客"+i);
           console.log(String(arr));
       }
       while(arr.length>0){
        //arr.pop   删除并返回数组的最后一个元素
         var last = arr.pop();
         console.log(last+"下车");
         console.log(String(arr));
        }

    // arr.shift()删除数组开头的第一个元素,并返回第一个元素
    // arr.unshift()向数组的开头添加一个或更多元素,并返回新的长度
        var arr2 =[];
        for(var i = 1; i <= 4; i++){
         arr2.unshift("乘客"+i);
         console.log(String(arr2));
        }
        while(arr2.length>0){
         var first = arr2.shift();
         console.log(first+"下车");
        }
 
队列  first in firs out
    var phone = 5;
   var queue = [];
   for(var i = 1 ; i<=5;i++){
    queue.push("顾客:"+i);
   }
   console.log(String(queue));
   while(phone>0){
    var first = queue.shift();
    phone--;
    console.log(first+"购买成功");
    console.log(String(queue));
   }

 

随机验证码

<button onclick="GetCode(6)">验证码</button>

<script>

 function init(){
                      var char = [];
                for(var u = 97;u<=122;u++){
                        //将unicode码为i的字符转换为字符存放到char中
                        char.push(String.fromCharCode(u));
                }
                for(var u = 65;u<=90;u++){
                char.push(String.fromCharCode(u));
                }
                for(var n = 0;n<=9;n++){
                        char.push(n);
                }  
                return char;
                }
             
                       
                function  GetCode(count){
                var char = init();
                for(var i = 0,code=[],hash=[];i<count;i++){
                        //随机数不重复
                        //在0~61之间随机生成一个数r
                        do{
                        var r = parseInt(Math.random()*62);
                        }while(hash[char[r]] != undefined);
                //得到的随机r是在char中不重复的字符下标
                        hash[char[r]] = true;
                        //将char中r位置的字符追加到code数组中
                        code.push(char[r]);
                }
               
                 console.log(code.join(""));
                   return code.join("");
                }
</script>

 找出最多的元素及最多的次数

 

var str = "1ssss2fasfaf3adad4aa66";
str = str.replace(/[asdf]/gi,"");
console.log(str);


function fun(){
var a = "zzzxxxqqwwwwweeerrrrrrrr";
//在result数组中有以a[i]为下标的元素,则给元素+1,
for(var i = 0 ,arr = [];i<a.length;i++){
if(arr[a[i]]){
arr[a[i]]++;
}else{//如果reuslt数组没有a[i]
arr[a[i]] = 1;
}

}
console.log(arr);
//获取arr中最大值
var max = 0,char = '';
for(var key in arr){
//如果当前元素比max大
if(arr[key] > max){
max = arr[key];
//讲当前元素的下标记录到char
char = key;
}
}
console.log("最多的是:"+char);
console.log("次数是:"+max);

}fun();