Web21.Math数组Date

来源:互联网 发布:2017单片机前景 编辑:程序博客网 时间:2024/05/22 03:52







Math任务


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


function getRandomNum1(min, max){    return  Math.floor( Math.random() * (max - min)) + min;}



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


function getRandomNum2(min, max){    return Math.floor( Math.random() * (max - min + 1)) + min;}




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



function getRandStr(len){    var dict = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";    str = '';    for( var i = 0; i < len; i++){       str += dict[Math.floor(Math.random() *62)];    }         return str;}




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.substr(0, str.length-1);     return str;}




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



function getRandColor(){    var dict = "0123456789abcdef";    str = '';        for(var i = 0; i < 6; i++){        str += dict[Math.floor(Math.random() * 16)];     }    str1 = "#" + str;     return str1;    }





数组任务


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

实现push pop shift unshift方法


push: 末尾添加一个或者多个元素  数组长度+n

pop: 取出末尾的一个元素, 数组长度-1

shift:删除数组的首位的元素,数组长度-1

unshift:首位加上一个或多个元素 数组长度+n

join:把数组元素使用参数作为连接符,连成一个字符串

splice:数组的替换操作


push:

var arr = [1,2,3,4]arr.splice(arr.length,0,5,6)console.log(arr)//[1,2,3,4,5,6]

pop:

var arr = [1,2,3,4]arr.splice(arr.length-1,1);console.log(arr)//  [1,2,3]

shift:

var arr = [1,2,3,4]arr.splice(0,1)console.log(arr)  //  [2,3,4]

unshift:

var arr = [1,2,3,4]arr.splice(0,1,6)console.log(arr) //[6,1,2,3,4]



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


function squareArr(arr){    for(var i = 0; i < arr.length; i++){        arr[i] = arr[i] * arr[i]    }    return arr}



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



function filterPositive(arr){    var newArr = []    var k = 0;    for(var i = 0; i < arr.length; i++){        if(typeof arr[i] == "number"&&arr[i]>0){           newArr[k] = arr[i]           k++        }    }    return newArr}



Date任务


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


function getChIntv(dateStr){

    var targetDate = new Date(dateStr)

 var curDate = new Date()

var offset = Math.abs(targetDate - curDate)

var totalSeconds =Math.floor(offset/1000)

var second = (offset/1000)%60

var totalMinutes = Math.floor((offset/1000)/60)

var minutes = totalMinutes%60

var totalHours = Math.floor(totalMinutes/60)

var hours = totalHours%24

var totalDays = Math.floor(totalHours/24)

return totalDays + '天' + hours + '小时' + minutes + '分钟' + secode + '秒'

 }

function getChIntv(str){    var targetDate = new Date(str)    var curDate = new Date()    var offset = Math.abs(targetDate - curDate)    var days = parseInt(offset/24*60*60*1000)    var hours = parseInt(offset%(24*60*60*1000)/(60*60*1000))    var minutes = parseInt(offset%(24*60*60*1000)%(60*60*1000)/(60*1000))    var seconds = parseInt(offset%(24*60*60*1000)%(60*60*1000)%(60*1000)/1000)    var str = "距除夕还有" + days + "天" + hours + "小时" + minutes + "分" + seconds + "秒"    return str;}



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



function getChsDate(str){    var s1 = "零,一,二,三,四,五,六,七,八,九,十,十一,十二,十三,十四,十五,十六,十七,十八,十九,二十,二十一,二十二,二十三,二十四,二十五,二十六,二十七,二十八,二十九,三十,三十一"    var dict = s1.split(',')    var newStr = str.split('-')    var years = ''    var year = newStr[0]    for(var i = 0; i < 4; i++){        years += dict[parseInt(year[i])]      }    var month = dict[parseInt(newStr[1])]    var days = dict[parseInt(newStr[2])]    return years + "年" + month + "月"+ days + "日" }

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 = new Date()    var offset = (curtime - time)/1000/60;    if(offset<1){        return 'just now'    }else if(offset<60){        return '1 min ago'    }else if(offset<60*24){        return Math.floor(offset/60) +'hours ago'    }else if(offset<60*24*30){        return Math.floor(offset/60/24) + 'days ago'    }else if(offset<60*24*30*12){        return Math.floor(offset/60/24/30) + 'month ago'    }else{        return Math.floor(offset/60/24/30/12) + 'yeas ago'    }}





原创粉丝点击