Math、数组、Date

JavaScript判断变量是否为数组的方法(Array)
Javascript中的apply与call详解
JS核心系列:浅谈 call apply 与 bind
javascript 类数组

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'));
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,636评论 5 468
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,890评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,680评论 0 330
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,766评论 1 271
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,665评论 5 359
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,045评论 1 276
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,515评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,182评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,334评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,274评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,319评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,002评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,599评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,675评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,917评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,309评论 2 345
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,885评论 2 341

推荐阅读更多精彩内容

  • .写一个函数,返回从min到max之间的 随机整数,包括min不包括max function randomness...
    邢烽朔阅读 307评论 0 1
  • 一.Math 1、写一个函数,返回从min到max之间的 随机整数,包括min不包括max 2、写一个函数,返回从...
    hahahahaqwert阅读 441评论 0 0
  • 1、写一个函数,返回从min到max之间的 随机整数,包括min不包括max 2.写一个函数,返回从min都max...
    饥人谷_啦啦啦阅读 183评论 0 0
  • Math任务 1. 写一个函数,返回从min到max之间的随机整数,包括min不包括max 如下: 2. 写一个函...
    _李祺阅读 229评论 0 0
  • Math 写一个函数,返回从min到max之间的 随机整数,包括min不包括max 写一个函数,返回从min都ma...
    ezrealor阅读 252评论 0 1