继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

Math、数组、Date

holdtom
关注TA
已关注
手记 1703
粉丝 240
获赞 991

1.写一个函数,返回从min到max之间的随机整数,包括min不包括max

        function randomNum(num) {            var dict = {};            var total = 0;            for(var i = 0; i < num; i++) {                var count = parseInt(Math.random() * 10);                if(dict[count]) {
                    dict[count]++;
                }else{
                    dict[count] = 1;
                }
            }            for(var k in dict) { 
                roundNum = (dict[k] / num * 100).toFixed(2);                
                dict[k] = parseInt(dict[k] / num * 100) + '%';
                total += + roundNum;                console.log('key:' + k,'value:' + dict[k]);
            }            console.log('总数为:' + parseInt(total));
        }
        randomNum(1000);

2.写一个函数,返回从min都max之间的随机整数,包括min包括max

         function randomNum(num) {            var dict = {};            var total = 0;            for(var i = 0; i < num; i++) {                var count = parseInt(Math.random() * 11);                if(dict[count]) {
                    dict[count]++;
                }else{
                    dict[count] = 1;
                }
            }            for(var k in dict) { 
                roundNum = (dict[k] / num * 100).toFixed(2);                
                dict[k] = parseInt(dict[k] / num * 100) + '%';
                total += + roundNum;                console.log('key:' + k,'value:' + dict[k]);
            }            console.log('总数为:' + parseInt(total));
        }
        randomNum(1000);

3.写一个函数,生成一个长度为 n 的随机字符串,字符串字符的取值范围包括0到9,a到 z,A到Z。

        var str = '1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'         
        function getRandStr(len) {            var randomStr = '';            for(var i = 0; i < len; i++) {                var idx = parseInt(Math.random() * str.length);
                randomStr += str[idx];                 
            }            console.log(randomStr);
        }
        getRandStr(10);

4.写一个函数,生成一个随机 IP 地址,一个合法的 IP 地址为 0.0.0.0~255.255.255.255

      function getRandIp() {            var arr = [];            for(var i = 0; i < 4; i++) {                var Num = parseInt(Math.random() * 256);
                arr.push(Num);
            }            console.log(arr.join('.'));
        }
        getRandIp();

5.写一个函数,生成一个随机颜色字符串,合法的颜色为#000000~ #ffffff

      var str = '0123456789abcdef'
        function getRandColor() {            var arr = [];            for(var i = 0; i < 6; i++) {                var Num = parseInt(Math.random() * str.length);
                arr.push(str[Num]);
            }            var colorStr ='#' + arr.join('');            console.log(colorStr);
        }
        getRandColor()

6.数组方法里push、pop、shift、unshift、join、splice分别是什么作用?用 splice函数分别实现push、pop、shift、unshift方法

  • push可向数组的末尾添加元素,并返回新的长度

  • pop删除并返回数组的最后一个元素

  • shift删除并返回数组的第一个元素

  • unshift向数组的开头添加元素,并返回新的长度

  • join把数组的所有元素放入一个字符串。元素通过指定的分隔符进行分隔

  • splice可以向数组进行添加、删除、替换元素

          var arr = [1,6,9]
          arr.splice(3,0,10);  //模拟push()
          console.log(arr)        //[1, 6, 9, 10]
    
          arr.splice(3,1);  //模拟pop()
          console.log(arr);   //[1, 6, 9]
    
          arr.splice(0,1);  //模拟shift
          console.log(arr);    //[6, 9]
    
          arr.splice(0,0,1)  //模拟unshift
          console.log(arr);   //[1, 6, 9]

7.写一个函数,操作数组,数组中的每一项变为原来的平方,在原数组上操作

        function squareArr(arr) {
            arr.forEach(function(e,i,array){                array[i] = e * e;
            })            return arr;
        }
        console.log(squareArr([12,8,6]));

8.写一个函数,操作数组,返回一个新数组,新数组中只包含正数,原数组不变

      function filterPositive(arr){            var newArr = [];
            arr.map(function(e) {                if(e > 0 && typeof e === 'number') {
                    newArr.push(e);
                }
            })            return newArr
        }       
        var arr = [3, -1,  2,  '饥人谷', true]        var newArr = filterPositive(arr)        console.log(newArr) 
        console.log(arr)

9.写一个函数getChIntv,获取从当前时间到指定日期的间隔时间

        function getChIntv(date) {            var timeEnd = Date.parse(date);            var timeStart = Date.now();            var diff = timeEnd - timeStart;            var day = parseInt(diff / (1000 * 60 * 60 * 24));            var hours =  parseInt((diff % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));            var minute = parseInt((diff % (1000 * 60 * 60)) / (1000 * 60));            var seconds = parseInt(diff % (1000 * 60) / 1000);            return '距离明年元旦:' + day + '天' + hours + '小时' + minute + '分钟' + seconds + '秒';
        } 
        console.log(getChIntv('2018-01-01')); //距离明年元旦:271天9小时37分钟15秒

10.把hh-mm-dd格式数字日期改成中文日期

        function getChsDate(date) {            var arr = ["零","一","二","三","四","五","六","七","八","九","十","十一","十二","十三","十四","十五","十六","十七","十八","十九","二十","二十一","二十二","二十三","二十四","二十五","二十六","二十七","二十八","二十九","三十","三十一"];            var dateArr = date.split('-');            var year = '';            // var day = dateArr[2];
            for(var i = 0; i < dateArr[0].length; i++){
                year += arr[dateArr[0][i]]; 
            }            var month = arr[parseInt(dateArr[1])];            var day = arr[parseInt(dateArr[2])];            return year + '年' + month + '月' + day + '日';
        }        console.log(getChsDate('2018-01-01'));  //二零一八年一月一日

11.写一个函数,参数为时间对象毫秒数的字符串格式,返回值为字符串。假设参数为时间对象毫秒数t,根据t的时间分别返回如下字符串

      function friendlyDate(time){
            time = parseInt(time);            var newTime = Date.now();            var diff = newTime - time;            if(diff < (1000 * 60)) {                return '刚刚';
            }else if(diff < (1000 * 60 * 60)) {                return '3分钟前';
            }else if(diff < (1000 * 60 * 60 * 24)) {                return '8小时前';
            }else if(diff < (1000 * 60 * 60 * 24 * 30)) {                return '3天前';
            }else if(diff < (1000 * 60 * 60 * 24 * 365)) {                return '2个月前';
            }else{                return '8年前';
            }
        }        console.log(friendlyDate('1475625600000'));



作者:饥人谷_米弥轮
链接:https://www.jianshu.com/p/72274b7cd193


打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP