发表于: 2021-04-14 19:24:45

1 2231


今天完成的事情:

添加了加减号控制滑块,实现了长按加减号输入框数值也会发生变化

var num_jia = document.getElementById("btnPlus"); //加号
var num_jian = document.getElementById("btnLess"); //减号
var input_num = document.getElementById("nm");  //数字显示
//加号按钮事件--鼠标按下
num_jia.onmousedown = function () {
    var i=0//变量i
    mouseTime = setInterval(function (){  //setInterval可一直执行内部函数
            add();
            i++  //若过一秒,执行一次i++
    }, 1000);
    if(i ==0){  //i=0时证明无长按事件为单击事件
            add();
    }
function add(){ //数字加1函数
        if(input_num.value >= 18 ) {
        input_num.value = 18;
        }else {
        input_num.value = parseInt(input_num.value) + 1;
    }
}
num_jia.onmouseup = function () {//鼠标抬起,执行清除
        clearInterval(mouseTime);   //清除setInterval的时间
}
//减号按钮事件    
num_jian.onmousedown = function () {
        var i=0;
        mouseTime = setInterval(function (){   
            minus();
            i++     //i=0时证明无长按事件为单击事件
        }, 1000); //1000即1秒
        if(i ==0){
            minus();
        }
}   
function minus(){
        if(input_num.value <= 4) {
            input_num.value = 4;
        }else {
            input_num.value = parseInt(input_num.value) - 1;
        }
}
num_jian.onmouseup = function () {
        clearInterval(mouseTime);
}


明天计划的事情:

继续完成js任务二

收获:

学习了洗牌算法,

其算法思想就是 从原始数组中随机抽取一个新的元素到新数组中

  1. 从还没处理的数组(假如还剩n个)中,产生一个[0, n]之间的随机数 random
  2. 从剩下的n个元素中把第 random 个元素取出到新数组中
  3. 删除原数组第random个元素
  4. 重复第 2 3 步直到所有元素取完
  5. 最终返回一个新的打乱的数组


var a = [0123456789];                               //创建一个数组a

var b = [];                                                            //创建一个空数组b

for (var i = 0i < a.lengthi++) {
            var index = Math.floor(Math.random() * (a.length - i));     //创建一个随机数,第一轮在0~10之间,第二轮在0~9之间。假设为2

            b.push(a[index]);                                         //将a的第3个数值添加到b里

            var center = a[index];                                   //定义变量center储存a的第三个值

            a[index] = a[a.length - i - 1];                           //将a的第三个值等于最后一个值

            a[a.length - i - 1] = center;                               //将最后一个指等于储存的a的第三个值,相当于两个数值换了位置

};                                                                      //因为下一轮不会选中到它,所以相当于从a数组里删除,再向b添加数值





返回列表 返回列表
评论

    分享到