随机数组Date

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

function getRandom(min,max){
    if(typeof min=="number"&& typeof max=="number"){
        return min+Math.floor(Math.random()*(max-min));
    }else{
        alert("error");
    }
}
console.log(getRandom(1,12))  // 1~11

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

function getRandom(min,max){
    if(typeof min=="number"&& typeof max=="number"){
        return min+Math.floor(Math.random()*(max-min+1));
    }else{
        alert("error");
    }
}
console.log(getRandom(1,12))  // 1~12

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

function getRandStr(len){
    var dico = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
    var str ="";
    for(var i=0;i

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

function getRandIP(){
    var str="";
    for(var i=0;i<4;i++){
        str += Math.floor(Math.random()*(256))+".";
    }
    str = str.split("");
    str.pop();
    str = str.join("");
    return str
}
var ip = getRandIP()
console.log(ip) // 10.234.121.45

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

function getRandColor(){
    var dico = "0123456789abcdef"
    var str ="#";
    for(var i=0;i<6;i++){
        var ran = Math.floor(Math.random()*16);
        str+=dico[ran];
    }
    return str;
}
var color = getRandColor()
console.log(color)   // #3e2f1b

数组任务

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

push:向数组中的尾部增加一个元素
pop:从数组中的尾部删除一个元素
shift:向数组中的头部删除一个元素
unshift:向数组中的头部增加一个元素
join:作用是把数组元素(对象调用其toString()方法)使用参数作为连接符连接成一字符串,不会修改原数组内容
splice:用于一次性解决数组添加、删除(这两种方法一结合就可以达到替换效果),方法有三个参数
1.开始索引
2.删除元素的数目
3.插入的新元素,可以写多个

function setArr(){
    var arr =[11,22,33];
    this.getArr = function(){
        return arr ;
    }
    this.push = function(item){
        arr.splice(arr.length,0,item);
        return arr ;
    }
    this.pop = function(){
        arr.splice(arr.length-1,1);
        return arr ;
    }
    this.unshift = function(item){
        arr.splice(0,0,item);
        return arr ;
    }
    this.shift = function(){
        arr.splice(0,1);
        return arr ;
    }
}
var pp = new setArr;
console.log(pp.push("push")) // [11,22,33,"push"]
console.log(pp.unshift("unshift")) // ["unshift",11,22,33,"push"]
console.log(pp.shift()) // [11,22,33,"push"]
console.log(pp.pop()) // [11,22,33]

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

function squareArr(arr){
    if(!Array.isArray(arr)){
        return ;
    }else{
        arr.forEach(function(item,index,arr){
            arr[index] = Math.pow(item,2);
        })
    }
}
var arr = [2, 4, 6]
squareArr(arr)
console.log(arr) // [4, 16, 36]

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

function filterPositive(arr){
    if(!Array.isArray(arr)){
        return ;
    }else{
        var newArr = arr.filter(function(item){
            return item>0&&typeof item=="number";
        })
        return newArr ;
    }
}
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,获取从当前时间到指定日期的间隔时间

var str = getChIntv("2017-10-01");
function getChIntv(time){
    var tagTime = new Date(time).getTime() - 8*60*60*1000;
    var nowTime = Date.now();
    var days = Math.floor((tagTime - nowTime)/(1000*60*60*24));
    var hours = Math.floor(((tagTime - nowTime)%(1000*60*60*24))/(1000*60*60));
    var minutes = Math.floor(((tagTime - nowTime)%(1000*60*60))/(1000*60));
    var seconds = Math.floor(((tagTime - nowTime)%(1000*60))/(1000));
    var str = "距国庆还有 "+days+" 天 "+hours+" 小时 "+minutes+" 分 "+seconds+" 秒 ";
    return str;
}
console.log(str);  // 距国庆还有 121 天 22 小时 40 分 17 秒 

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

var str = getChsDate('2015-01-08');
function getChsDate(time){
    var dico = {
        "0":"零","1":"一","2":"二","3":"三","4":"四","5":"五","6":"六","7":"七",
        "8":"八","9":"九","10":"十","11":"十一","12":"十二","13":"十三","14":"十四",
        "15":"十五","16":"十六","17":"十七","18":"十八","19":"十九","20":"二十","21":"二十一",
        "22":"二十二","23":"二十三","24":"二十四","25":"二十五","26":"二十六","27":"二十七","28":"二十八",
        "29":"二十九","30":"三十","31":"三十一"
    };
    var arr = time.split("-");
    var str = "";
    for(var i=0;i<4;i++){
        str+=dico[arr[0][i]];
    }
    str+="年"+dico[arr[1]*1]+"月"+dico[arr[2]*1]+"日";
    return str;
}
console.log(str);  // 二零一五年一月八日

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

  function friendlyDate(time){
    var nowTime = Date.now();
    var goTime = nowTime - time*1;
    if(goTime<1000*60){
        console.log("刚刚");
    }else if(goTime<1000*60*60){
        console.log(Math.floor(goTime/(1000*60))+"分钟前");
    }else if(goTime<1000*60*60*24){
        console.log(Math.floor(goTime/(1000*60*60))+"小时前");
    }else if(goTime<1000*60*60*24*30){
        console.log(Math.floor(goTime/(1000*60*60*24))+"天前");
    }else if(goTime<1000*60*60*24*365){
        console.log(Math.floor(goTime/(1000*60*60*24*30))+"个月前");
    }else{
        console.log(Math.floor(goTime/(1000*60*60*24*360))+"年前");
    }
}
var str = friendlyDate( '1484286699422' ) //  4个月前
var str2 = friendlyDate('1493941245793') //27天前

你可能感兴趣的:(随机数组Date)