Math任務(wù)
1、寫一個(gè)函數(shù),返回從min到max之間的隨機(jī)整數(shù),包括min不包括max
function str(min,max){
var num;
num=Math.floor(Math.random()*(max-min)+min);
return num;
}
var result=str(2,10)
console.log(result)
2、寫一個(gè)函數(shù),返回從min都max之間的隨機(jī)整數(shù),包括min包括max
function str(min,max){
var num;
num=Math.floor(Math.random()*(max-min+1)+min);
return num;
}
var result=str(2,10)
console.log(result)
3、寫一個(gè)函數(shù),生成一個(gè)長度為 n 的隨機(jī)字符串,字符串字符的取值范圍包括0到9,a到 z,A到Z。
var str=''
var ch,idx;
var dict='0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
function obj(len) {
for(var i=0; i<len; i++){
idx=Math.floor(Math.random()*62)
ch=dict[idx]
str+=ch;
}return str
}
var str=obj(30);
console.log(str);
4、寫一個(gè)函數(shù),生成一個(gè)隨機(jī) IP 地址,一個(gè)合法的 IP 地址為 0.0.0.0~255.255.255.255
function obj(){
var arr=new Array(4);
for(varr i=0; i<4; i++){
var num=Math.floor(Math.random()*256);
arr[i]=num;
}return arr.join('.')
}
var all=obj();
console.log(all)
5、寫一個(gè)函數(shù),生成一個(gè)隨機(jī)顏色字符串,合法的顏色為#000000~ #ffffff
function getRandColor(len){
var dict='0123456789abcdef'
var ch
var idx
var str=''
var result
for(var i=0; i<6; i++){
idx=Math.floor(Math.random()*16)
ch=dict[idx]
str=str+ch
result="#"+str
}
return result
}
var result = getRandColor(6)
console.log(result)
數(shù)組任務(wù)
1、數(shù)組方法里push、pop、shift、unshift、join、splice分別是什么作用?用 splice函數(shù)分別實(shí)現(xiàn)push、pop、shift、unshift方法
push與pop相對(duì)應(yīng),shift與unshift相對(duì)應(yīng)
push是在原數(shù)組的基礎(chǔ)上添加一個(gè)新成員在數(shù)組的最后,而pop則是吧數(shù)組的最后一個(gè)成員移出
unshift是在原數(shù)組的基礎(chǔ)上添加一個(gè)新成員在數(shù)組的開頭,而shift則是把數(shù)組的下標(biāo)為0的成員移出
join();是用于將一個(gè)數(shù)組以某種特定的分隔符轉(zhuǎn)換成字符串
splie用于一次性解決數(shù)組添加、刪除(這兩種方法一結(jié)合就可以達(dá)到替換效果),方法有三個(gè)參數(shù)1.開始索引2.刪除元素的位移3.插入的新元素,當(dāng)然也可以寫多個(gè)
var arr=[1,2,3]
arr.push(4)=arr.splice(3,1,4)
arr.pop(3)=arr.splice(2,1)
arr.unshift(0)=arr.splice(0,0,0)
arr.shift(1)=arr.splice(0,1)
2、寫一個(gè)函數(shù),操作數(shù)組,數(shù)組中的每一項(xiàng)變?yōu)樵瓉淼钠椒?,在原?shù)組上操作
function squareArr(arr){
for(var i=0;i<arr.length;i++){
arr[i]=arr[i]*arr[i]
}
}
var arr = [2, 4, 6]
squareArr(arr)
console.log(arr) // [4, 16, 36]
3、寫一個(gè)函數(shù),操作數(shù)組,返回一個(gè)新數(shù)組,新數(shù)組中只包含正數(shù),原數(shù)組不變
var newArr=[]
function filterPositive(arr){
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)
console.log(arr)
Date 任務(wù)
1、 寫一個(gè)函數(shù)getChIntv,獲取從當(dāng)前時(shí)間到指定日期的間隔時(shí)間
function getChIntv(timeStr){
var timeEnd=new Date(timeStr).getTime()
var timeStart=new Date().getTime()
var offsetTime=timeEnd-timeStart
var days=parseInt(offsetTime/(1000*60*60*24));
var hours=parseInt(offsetTime%(1000*60*60*24)/(1000*60*60))
var minutes=parseInt(offsetTime%(1000*60*60)/(1000*60))
var seconds=parseInt(offsetTime%(1000*60)/(1000))
return '距離'+timeStr+'還有'+days+'天'+hours+'時(shí)'+minutes+'分'+minutes+'秒'
}
var str = getChIntv("2017-10-01");
console.log(str);
2、把hh-mm-dd格式數(shù)字日期改成中文日期
function getChsDate(str){
var dateArr=str.split('-')
var year=dateArr[0]
var month=dateArr[1]
var day=dateArr[2]
var dict=['零','一','二','三','四','五','六','七','八','九','十','十一','十二','十三','十四','十五','十六','十七','十八',
'十九','二十','二十一','二十二','二十三','二十四','二十五','二十六','二十七','二十八','二十九','三十','三十一','三十二','三十三']
var chYear=dict[parseInt(year[0])]+dict[parseInt(year[1])]+dict[parseInt(year[2])]+dict[parseInt(year[3])]+'年';
var chMonth= dict[parseInt(month)] + '月';
var chDay= dict[parseInt(day)] + '日';
return chYear+chMonth+chDay;
}
var str = getChsDate('2015-01-28');
console.log(str);
3、寫一個(gè)函數(shù),參數(shù)為時(shí)間對(duì)象毫秒數(shù)的字符串格式,返回值為字符串。假設(shè)參數(shù)為時(shí)間對(duì)象毫秒數(shù)t,根據(jù)t的時(shí)間分別返回如下字符串:
剛剛( t 距當(dāng)前時(shí)間不到1分鐘時(shí)間間隔)
3分鐘前 (t距當(dāng)前時(shí)間大于等于1分鐘,小于1小時(shí))
8小時(shí)前 (t 距離當(dāng)前時(shí)間大于等于1小時(shí),小于24小時(shí))
3天前 (t 距離當(dāng)前時(shí)間大于等于24小時(shí),小于30天)
2個(gè)月前 (t 距離當(dāng)前時(shí)間大于等于30天小于12個(gè)月)
8年前 (t 距離當(dāng)前時(shí)間大于等于12個(gè)月)
function friendlyDate(time){
var timeStart=time;
var timeEnd=new Date().getTime()
var offsetTime=timeEnd-timeStart;
var minutes=1000*60;
var hours=1000*60*60;
var days=1000*60*60*24;
if(offsetTime<minutes&&offsetTime>=0){
return '剛剛'
}else if(offsetTime<hours&&offsetTime>=minutes){
return parseInt(offsetTime/minutes)+'分鐘前'
}else if(offsetTime>=hours&&offsetTime<24*hours){
return parseInt(offsetTime/hours)+'小時(shí)前'
}else if(offsetTime>=24*hours&&offsetTime<30*days){
return parseInt(offsetTime/(30*days))+'個(gè)月前'
}else(offsetTime>=12*30*days)
return parseInt(offsetTime/(12*30*days))
}
var str = friendlyDate( '1484286699422' ) // 1分鐘前
var str2 = friendlyDate('1483941245793') //4天前
console.log(str)
console.log(str2)