Math数组Date

Math任务

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

function f1(min,max) {
    console.log(parseInt(Math.random()*(max-min))+min)
}

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

function f1(min,max) {
    console.log(parseInt(Math.random()*(max-min+1))+min)
}


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

function getRandStr(len) {
    var str = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
    var str1 = [];
    for(i = 0;i<len;i++){
        str1.push(str[parseInt(Math.random()*62)])
    }
    console.log(str1.join(''))
}

var str = getRandStr(10); // 0a3iJiRZap


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

function getRandIP(){
   var str = [];
   for(i = 0;i < 4;i++){
       str.push(parseInt(Math.random()*256));
   }
   return str.join('.');
}
var ip = getRandIP();
console.log(ip)


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

function getRandColor(){
    var str = '0123456789abcdef';
    var str1 = [];
    str1.unshift('#');
    for(i = 0;i < 6;i++){
        str1.push(str[parseInt(Math.random()*16)])
    }
    return str1.join('');
}
var color = getRandColor();
console.log(color);


数组任务

1、数组方法里pushpopshiftunshiftjoinsplice分别是什么作用?用 splice函数分别实现pushpopshiftunshift方法

方法 描述
concat() 连接两个或更多的数组,并返回结果。
join() 把数组的所有元素放入一个字符串。元素通过指定的分隔符进行分隔。
pop() 删除并返回数组的最后一个元素
push() 向数组的末尾添加一个或更多元素,并返回新的长度。
reverse() 颠倒数组中元素的顺序。
shift() 删除并返回数组的第一个元素
slice() 从某个已有的数组返回选定的元素
sort() 对数组的元素进行排序
splice() 删除元素,并向数组添加新元素。
toSource() 返回该对象的源代码。
toString() 把数组转换为字符串,并返回结果。
toLocaleString() 把数组转换为本地数组,并返回结果。
unshift() 向数组的开头添加一个或更多元素,并返回新的长度。
valueOf() 返回数组对象的原始值


// 用 splice函数分别实现push、pop、shift、unshift方法

// 实现push功能
var str = [0,1,2,3]
function splicepush(arr,element) {
    arr.splice(arr.length,0,element);
    return arr.length;
}

//实现pop功能
function splicepop(arr) {
    console.log(arr[arr.length-1]);
    arr.splice(arr.length-1,1);
}

//实现shift功能
function spliceshift(arr) {
    console.log(arr[0]);
    arr.splice(0,1);
}

//实现unshift功能
function spliceunshift(arr,element) {
    arr.splice(0,0,element);
    console.log(arr.length);
}



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

function squareArr(arr){
    for(i = 0; i<arr.length;i++){
        arr[i] = arr[i]*arr[i];
    }
}
var arr = [2, 4, 6];
squareArr(arr);
console.log(arr);


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

function filterPositive(arr){
    var str = [];
    var n = 0;
    for(i = 0; i<arr.length;i++) {
        if (arr[i]>0 && typeof arr[i] === "number"){
            str[n] = arr[i];
            n++
        }
    }
    return str;
}
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) {
    offsetTime = Date.parse(time) - Date.now();
    var day = parseInt(offsetTime/1000/60/60/24);
    var hour = parseInt((offsetTime-day*1000*60*60*24)/1000/60/60);
    var min = parseInt((offsetTime-day*1000*60*60*24-hour*1000*60*60)/1000/60);
    var second = parseInt((offsetTime-day*1000*60*60*24-hour*1000*60*60-min*1000*60)/1000);
    var str = '距离年终还有' + day + '天' + hour + '小时' + min+'分钟' + second + '秒';
    return str;
}
var str = getChIntv("2017-5-20");
console.log(str);  // 距年终还有 XX 天 XX 小时 XX 分 XX 秒


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

function getChsDate(time) {
    var dict = ["零","一","二","三","四","五","六","七","八","九","十","十一","十二","十三","十四","十五","十六","十七","十八","十九","二十","二十一","二十二","二十三","二十四","二十五","二十六","二十七","二十八","二十九","三十","三十一"];
    var year = time.split('-')[0].split('');
    var month = time.split('-')[1];
    var day = time.split('-')[2];
    for(i = 0;i < year.length;i++){
        year[i] = dict[year[i]];
    }
    year = year.join('');
    month = dict[parseInt(month)];
    day = dict[parseInt(day)];
    return (year + '年' + month + '月' + day + '日' );
}
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){
    offsetTime = Date.now() - time;
    if(offsetTime < 60000){
        return "刚刚";
    }else if(offsetTime < 3600000){
        return  '3分钟前';
    }else if(offsetTime < 86400000){
        return  '8小时前';
    }else if(offsetTime < 2592000000){
        return  '3天前';
    }else if(offsetTime < 31536000000){
        return  '2个月前';
    }else if(offsetTime > 31536000000){
        return  '8年前';
    }
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值