美文网首页
数组,日期,Math

数组,日期,Math

作者: Schrodinger的猫 | 来源:发表于2017-06-27 14:59 被阅读0次

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

    function IntRandom(min,max){
          return Math.floor(Math.random()*(max-min)+min);
    }
    console.log(intRandom(2,5));//2,3,4中的随机一个
    

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

    function IntRandom(min,max){
          return Math.floor(Math.random()*(max+1-min)+min);
    }
    console.log(intRandom(2,5));//2,3,4,5中的随机一个
    

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

    function getRandStr(len){
      //补全函数
                var str = '';
                var str1 = '0123456789\
                abcdefghigklmnopqrstuvwxyz\
                ABCDEFGHIGKLMNOPQRSTUVWXYZ';
                for(var i=0;i<len;i++){
                    str+=str1.charAt(Math.floor(Math.random()*str1.length));
                }
                return str;
    }
    var str = getRandStr(10); // 0a3iJiRZap
    

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

    function getRandIP(){
      //补全
        var arr = [];
        for(var i=0;i<4;i++){               
                arr.push(Math.floor(Math.random()*256));
            }
            return arr.join('.');
    }
    var ip = getRandIP();
    console.log(ip); // 10.234.121.45
    

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

    function getRandColor(){
            var str1 = '0123456789abcdef';
                var str = '';
                for(var i=0;i<6;i++){
                    str+=str1.charAt(Math.floor(Math.random()*str1.length));
                }
                return '#'+str;
    }
    var color = getRandColor();
    console.log(color);   // #3e2f1b
    

    数组任务

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

    push:向数组末尾添加一个或多个元素;
    pop:删除并返回数组的最后一个元素;
    unshift:向数组开头添加一个或多个元素,并返回新的长度;
    shift:删除并返回数组的第一个元素;
    join:把所有的数组元素放入一个字符串,通过指定的分隔符进行拼接;
    splice:删除数组中的元素,并向数组中添加新的元素;

    push: arr.splice(arr.length,0,'添加的元素');
    pop:arr.splice(arr.length-1,1);
    unshift:arr.splice(0,0,'添加的元素');
    shift:arr.splice(0,1);
    

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

    function squareArr(arr){
        arr.forEach(function (value,index) {
            arr[index]=Math.pow(value,2);
            });
    }
    var arr = [2, 4, 6];
    squareArr(arr);
    console.log(arr); // [4, 16, 36]
    

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

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

    Date 任务

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

            function getChIntv(time) {
                var curDate = Date.now();
                var newTime = Date.parse(time);
                var milSec = newTime - curDate;
                var totalSec = Math.floor(milSec/1000);
                var sec = totalSec % 60;
                var min = Math.floor((totalSec / 60))%60;
                var hours = Math.floor((totalSec/3600))%24
                var days = Math.floor((totalSec/3600)/24);
                return '还有'+days+'天'+hours+'小时'+min+'分'+sec+'秒';
            }
    var str = getChIntv("2017-02-08");
    console.log(str);  //还有36天22小时3分41秒
    

    2、把hh-mm-dd格式数字日期改成中文日期

            function getChsDate(time) {
                var arr = time.split('-');
                function replace(n) {
                    switch (n) {
                        case '0':
                            n = '零';
                            break;
                        case '1':
                            n = '一';
                            break;
                        case '2':
                            n = '二';
                            break;
                        case '3':
                            n = '三';
                            break;
                        case '4':
                            n = '四';
                            break;
                        case '5':
                            n = '五';
                            break;
                        case '6':
                            n = '六';
                            break;
                        case '7':
                            n = '七';
                            break;
                        case '8':
                            n = '八';
                            break;
                        case '9':
                            n = '九';
                            break;
                    }
                    return n;
                }
                var year = arr[0];
                for(var i=0;i<year.length;i++){
                    year = year.replace(year.charAt(i),replace(year.charAt(i)));                
                }
                // console.log(year);
                var month = arr[1];
                for(var i=0;i<month.length;i++){
                    month = month.replace(month.charAt(i),replace(month.charAt(i)));
                }
                if(month.charAt(0)=='零'){
                    month = month.replace(month.charAt(0),'');
                }else{
                    if(month.charAt(1)=='零'){
                        month = month.replace(month.charAt(1),'');
                    }
                    month = month.replace(month.charAt(0),'十');
                }
                // console.log(month)
                var days = arr[2];
                for(var i=0;i<days.length;i++){
                    days = days.replace(days.charAt(i),replace(days.charAt(i)));
                }
                if(days.charAt(0)=='零'){
                    days = days.replace(days.charAt(0),'');
                
                }else if(days.charAt(0)=='一'){
                    if(days.charAt(1)=='零'){
                        days = days.replace(days.charAt(1),'');
                    }
                    days = days.replace(days.charAt(0),'十');
                }else if(days.charAt(0)=='二'){
                    if(days.charAt(1)=='零'){
                        days = days.replace(days.charAt(1),'');
                    }
                    days = days.replace(days.charAt(0),'二十');
                }else if(days.charAt(0)=='三'){
                    if(days.charAt(1)=='零'){
                        days = days.replace(days.charAt(1),'');
                    }
                    days = days.replace(days.charAt(0),'三十');
                }
                // console.log(days);
                return year+'年'+month+'月'+days+'日';
            }
    var str = getChsDate('2015-01-08');
    console.log(str);  // 二零一五年一月八日
    

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

    刚刚( t 距当前时间不到1分钟时间间隔)
    3分钟前 (t距当前时间大于等于1分钟,小于1小时)
    8小时前 (t 距离当前时间大于等于1小时,小于24小时)
    3天前 (t 距离当前时间大于等于24小时,小于30天)
    2个月前 (t 距离当前时间大于等于30天小于12个月)
    8年前 (t 距离当前时间大于等于12个月)

                function friendlyDate(time){
                    var curTime = Date.now();
                    // console.log(typeof curTime);
                    var result = '';
                    var diff = Math.floor((curTime - time)/1000);
                    switch (true) {
                        case  diff < 60:
                            result = '刚刚';
                            break;
                        case diff > 60 && diff < 3600:
                            result = Math.floor(diff/60) +'分钟前';
                            break;
                        case diff > 3600&& diff < 3600*24:
                            result = Math.floor(diff/3600)+'小时前';
                            break;
                        case diff > 3600*24 && diff < 3600*24*30:
                            result = Math.floor(diff/(3600*24))+'天前';
                            break;  
                        case diff > 3600*24*30 && diff < 3600*24*30*12:
                            result = Math.floor(diff/(3600*24*30))+'个月前';
                            break;                                                                                  
                        default:
                            result = Math.floor(diff/(3600*24*30*12))+'年前';
                            break;
                    }
                    return result;
                }
                var str = friendlyDate( '1484286699422'); 
                console.log(str);//  5个月前
                var str2 = friendlyDate('1383941245793'); 
                console.log(str2);//3年前
    

    相关文章

      网友评论

          本文标题:数组,日期,Math

          本文链接:https://www.haomeiwen.com/subject/tbgdcxtx.html