视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
JS基础-Math数组Date
2020-11-27 19:48:18 责编:小采
文档


本篇讲解了js的基础math数组和date的相关知识。

一.Math

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

 //不包含最大数
 function getNum(min,max){ //包含最小值,随机最小值与最大值之间的整数且不包含最大值
 console.log(min+Math.floor(Math.random()*(max-min)))
 }
 getNum(10,15)

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

//也包含最大数

 function getNum2(min,max){ //包含最小值,随机最小值与最大值之间的整数且包含最大值
 console.log(min+Math.floor(Math.random()*(max+1-min)))
}
 getNum2(10,15)

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

 function getRandStr(len){ //补全函数
 var str1=''
 var str = '01234567abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'; for(var i=0;i<len;i++){ var ss=parseInt(Math.random()*str.length);
 str1 += str[ss];
 } return str1
 } var str = getRandStr(10); // 例:0a3iJiRZap
 console.log(str);

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

 function getRandIP(){ //补全
 var ip=''
 for (var i=0; i<4; i++){ var str=Math.floor(Math.random()*256);
 ip += str; // 3个点是4个数
 if( i<3 ){
 ip += ".";
 }
 } return ip;
 }var ip = getRandIP()console.log(ip) // 例:10.234.121.45

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

 function getRandColor(){ var str = "01234567abcdef"; var strlen = str.length; var colorstr = "#"; for(var i = 0; i < 6; i++){ var index = Math.floor(Math.random()*strlen);
 colorstr += str[strlen];
 } return colorstr
 } var color = getRandColor() console.log(color) // 例:#3e2f1b

二.数组

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

push()、pop()和unshift()、shift()这两组同为对数组的操作,并且会改变数组的本身的长度及内容。
不同的是 push()、pop() 是从数组的尾部进行增删,unshift()、shift() 是从数组的头部进行增删。

splice() 方法向/从数组中添加/删除项目,然后返回被删除的项目。该方法会改变原始数组。
join() 方法用于把数组中的所有元素放入一个字符串。元素是通过指定的分隔符进行分隔的。

//splice函数分别实现push、pop、shift、unshift方法//例子:
 var arr = [1,2,3,4,5] //push 
 arr.splice(arr.length,0,6); //位置,要删除元素的个数,要添加到数组的元素
 console.log(arr);//[1,2,3,4,5,6]
 console.log(arr.length) //pop
 arr.splice(arr.length-1,1) console.log(arr);//[1,2,3,4,5]
 //shift
 arr.splice(0,1); console.log(arr);//[2,3,4,5]
 //unshift
 arr.splice(0,0,1); console.log(arr);//[1,2,3,4,5]

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

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

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

 function filterPositive(arr){ var newArr = []; for(var i = 0; i < arr.length; i++){ if(typeof(arr[i]) === "number" && arr[i] > 0){
 newArr.push(arr[i]);
 }
 } return newArr;
 } var arr = [3, -1, 2, '饥人谷', true] var newArr = filterPositive(arr) console.log(newArr) //[3, 2]

三.Date

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

 function getChIntv(s) { //时间=指定时间-当前时间
 var time = Math.abs(Date.parse(s) - Date.now()); 
 //天数=时间/天的毫秒
 var days = parseInt(time/(1000*60*60*24)); //几小时=时间%天的毫秒/一小时毫秒
 var hours = parseInt((time%(1000*60*60*24))/(1000*60*60)); 
 //几分钟=时间%天的毫秒/一小时毫秒/一分钟毫秒
 var minutes = parseInt(((time%(1000*60*60*24))%(1000*60*60))/(1000*60)); 
 //几秒=时间%天的毫秒/一小时毫秒/一分钟毫秒/一秒毫秒
 var seconds = parseInt(((time%(1000*60*60*24))%(1000*60*60))%(1000*60)/1000); 
 return days + '天' + hours + '小时' + minutes + '分钟' + seconds+ '秒'
 } var str = getChIntv('2017-7-01'); 
 console.log(str);

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

 function getChsDate(s) { 
 var arr = ['零','一','二','三','四','五','六','七','八','九','十','十一','十二','十三' , '十四','十五','十六','十七','十八','十九','二十','二十一','二十二','二十三','二十四', '二十五','二十六','二十七','二十八','二十九','三十','三十一'] //字符串拆成数组 var time = s.split('-'); // 
输出字符串就行 var year = time[0]; var month = time[1]; var day = time[2]; var newYear = arr[year[0]]+arr[year[1]]+arr[year[2]]; var newMonth = arr[parseInt(month)]; var newDay = arr[parseInt(day)]; return newYear+"年"+newMonth+"月"+newDay+"日"; } var str = getChsDate('2017-06-30'); 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 msec=new Date() // getTime()返回距 1970 年 1 月 1 日之间的毫秒数
 var nowTime=msec.getTime() var sec=(nowTime-time)/1000
 if(sec<60){ return '刚刚'
 }else if(sec>=60&&sec<3600){ return '三分钟前'
 }else if(sec>=3600&&sec<8*3600){ return '8小时前'
 }else if(sec>=24*3600&&sec<24*3600*30){ return '3天前'
 }else if(sec>=24*3600*30&&sec<24*3600*30*12){ return '2个月前'
 }else if(sec>=24*3600*30*12){ return '8年前' 
 }
 } var str = friendlyDate( '1484286699422' ) 
 var str2 = friendlyDate('1483941245793') 
 console.log(str) //2个月前
 console.log(str2) //2个月前

本篇对js基础相关知识进行的相关的讲解,更多知识请关注Gxl网。

下载本文
显示全文
专题