数组3:数组塌陷,数组去重,小方法(十进制转换,保留几位小数),Math.方法(随机数)

数组塌陷  i--

数组去重:两种方法

 <script>

// 数组塌陷:数组删除都有,所以要 i--
        /* 
        (
        想把数组删除完,但是删除不尽,splice()
        因为删除出去的数据,不占位置了,
        想要解决塌陷,则需要改变数组长度,不建议
        所以可以:改变i,让i保持不变,-1,这也不建议,
        不如:i--;每次循环自减一次
        ) 
        
        */
        var arr = [100, 200, 300, 400, 500, 600]
        for (let i = 0; i < arr.length; i++) {
            // 第一种
            arr.shift(arr[i])
            i--

            // 第二种
            // arr.splice(i,1)
            // i--
        }
        console.log(arr)


/* 
    数组去重;两种,用indexOf() -1判断
    第一种:改变数组,删除 splice 
    第二种:新建数组
*/
        // 第一种
        var arr2 = [1, 1, 2, 3, 4, 4, 5, 2, 3, 7]
        for (let i = 0; i < arr2.length; i++) {

            var res = arr2.indexOf(arr2[i], i + 1) //res中存储的就是后面重复出现数据

            if (res != -1) {         //数据不存在返回-1, !等于-1, 意思第一次存在保留。后边相同就删除了
                arr2.splice(res, 1)
                i--     // 解决数组塌陷
            }
        }
        console.log(arr2)

        // 第二种
        // 数组去重。封装
        var arr3 = [1, 1, 2, 3, 4, 4, 5, 2, 3, 7]
        function arrDelSame(arr3) {
            
            var newArr = []
            for (let i = 0; i < arr3.length; i++) {
                var res = newArr.indexOf(arr3[i]) // 检测新数组中有没有,数组数据:arr3[i],没有的话返回值-1
                if (res == -1) {        // 新数组中没有添加,有则不添加
                    newArr.push(arr3[i])
                }

            }
            return newArr
        }
        var res = arrDelSame(arr3)
        console.log(res)

    </script>

小方法(十进制转换,保留几位小数)

    <script>
        /* 
            1.将十进制转成其他进制的方法
            语法:十进制的数字.toString(你要转成几进制)
        */
        var num = 11//这个5是一个十进制的数字
        //    我想把这个5,也就是num转成二进制
        var res = num.toString(16)
        console.log(res); // 输出b
        //10 11 12 13 14 15 
        //a  b  c  d  e  f 

        /* 
            2.将其他进制转成十进制
            语法:parseInt(数字,你要把这个数字当作几进制)
        */
        // var res = parseInt(10, 2)
        // console.log(res);//2
    


        /* 
            3.toFixed()
            语法:数字.toFixed(你要保留几位)
            保留小数点的时候会自动进行四舍五入
        */
        var num = 3.141634567
        var res = num.toFixed(2)
        console.log(res);//3.14
    </script>

Math.方法:

        // 随机数的公式:var res = Math.round(Math.random() * (max-min)+min)
        // 索引的最小是:0
        // 索引的对大值:arr.length-1

    <script>
        /* 
            1.Math.random()
            作用:生成随机数,取值之间在0-1之间,取不到最大值.
            2.Math.round(数字)
            作用:四舍五入取整
            3.Math.ceil(数字)
            作用:向上取整
            4.Math.floor(数字)
            作用:向下取整
            5.Math.abs(数字)
            作用:绝对值
            6.Math.pow(x,y)方法
                求x的y次方
                等价于**
            7.Math.sqrt(数字):求算数平方根
            8.Math.max(数字1,数字2,...)求一堆数字中的最大值
            9.Math.min(数字1,数字2,...)求一堆数字中的最小值
            10.Math.PI

        */
        //   var res =  Math.random()
        //   console.log(res);

        // var res = Math.round(3.5)
        // console.log(res);

        // var res = Math.ceil(3.9)
        // console.log(res);

        // var res = Math.floor(3.1)
        // console.log(res);

        // var res = Math.abs(-5)
        // console.log(res);

        // var res = Math.pow(2, 3)
        // console.log(res);

        // var res = Math.sqrt(16)
        // console.log(res);

        // var res = Math.max(10, 2, 300, 4, 6)
        // console.log(res);
        // var res = Math.min(10, 2, 300, 4, 6)
        // console.log(res);

        // console.log(Math.PI);
    </script>
        // 随机数的公式:var res = Math.round(Math.random() * (max-min)+min)
        // 索引的最小是:0
        // 索引的对大值:arr.length-1

        // 随机点名
        // var arr = ['张','徐' ,'王' ,'赵' ,'刘']
        // var index = Math.round(Math.random()*(arr.length-1-0),0)
        // console.log(arr[index])

        // 2    颜色随机
        function randomColor() {
            var color = '#'
            //0123456789abcdef
            for (var i = 0; i < 6; i++) {
                // 获取 1~15 之间的任意数
                var num = Math.round(Math.random() * (15 - 0) + 0)
                // 转换成16进制,获取字母
                var res = num.toString(16)
                color += res
            }
            return color
        }
        var res = randomColor()
        console.log(res)

        // 1
        // var str = '0123456789abcdef'
        // var color = '#'
        // for(var i = 1; i <= 6; i++){
        //     var index = Math.round(Math.random()*(str.length-1-0)+0) //随机下标(索引)
        //     color += str[index]
        // }
        // console.log(color)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值