Math任務(wù)
1、寫一個(gè)函數(shù)家乘,返回從min到max之間的 隨機(jī)整數(shù)蝗羊,包括min不包括max
function getRandomNumber(min,max){
var a=max-min;
var b=Math.floor(Math.random()*a+min);
return b// return Math.floor(Math.random()*(max-min)+min)
}
2、寫一個(gè)函數(shù)仁锯,返回從min都max之間的 隨機(jī)整數(shù)耀找,包括min包括max
function getRandomNumber(min,max){
return min+Math.floor(Math.random()*(max-min+1))
}
3、寫一個(gè)函數(shù)业崖,生成一個(gè)長(zhǎng)度為 n 的隨機(jī)字符串野芒,字符串字符的取值范圍包括0到9,a到 z双炕,A到Z
function getRandStr(len){
function random(min,max){
return min+Math.floor(Math.random()*(max-min+1));
}
var str=""
for(var i=0;i<len;i++){
dict='0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
str=str+dict[random(0,62)]
}
return str
}
var str = getRandStr(10);
4狞悲、寫一個(gè)函數(shù),生成一個(gè)隨機(jī) IP 地址妇斤,一個(gè)合法的 IP 地址為 0.0.0.0~255.255.255.255
function random(min,max){
return min+Math.floor(Math.random()*(max-min+1));
}
function getRandIP(){
var arr=[];
for(var i=0;i<4;i++){
arr[i]=random(0,256)
}
return arr.join('.')
}
var ip = getRandIP()
console.log(ip) // 10.234.121.45
5摇锋、寫一個(gè)函數(shù),生成一個(gè)隨機(jī)顏色字符串趟济,合法的顏色為#000000~ #ffffff
function getRandColor(){
function random(min,max){
return min+Math.floor(Math.random()*(max-min+1));
}
var str='#';
for(var i=0;i<6;i++){
dict="0123456789abcdef"
str+=dict[random(0,15)]
}
return str
}
var color = getRandColor()
function getRandColor(){
function random(min,max){
return min+Math.floor(Math.random()*(max-min+1));
}
var str='#';
for(var i=0;i<6;i++){
dict="0123456789abcdef"
str+=dict[random(0,15)]
}
return str
}
var color = getRandColor()
console.log(color)
數(shù)組任務(wù)
1乱投、數(shù)組方法里push、pop顷编、shift戚炫、unshift、join媳纬、splice分別是什么作用双肤?用 splice函數(shù)分別實(shí)現(xiàn)push施掏、pop、shift茅糜、unshift方法
push的使用:Array.push(str) 將一個(gè)或多個(gè)元素添加到數(shù)組的末尾七芭,并返回新數(shù)組的長(zhǎng)度
pop的使用: Array.pop() 將數(shù)組末尾最后一個(gè)元素刪去,并返回該元素的值(更改數(shù)組長(zhǎng)度)
shift的使用: Array.shift() 將數(shù)組的第一個(gè)元素刪除蔑赘,并返回該元素的值(更改數(shù)組長(zhǎng)度)
unshif的使用:t Array.unshift() 將一個(gè)或多個(gè)元素添加到數(shù)組的開頭狸驳,并返回新的數(shù)組長(zhǎng)度
join的使用: Array.join(separator) 將數(shù)組或類數(shù)組的所有元素以制定分隔符進(jìn)行連接,稱為一個(gè)字符串
splice的使用: Array.splice(index,deleteCount,item1,item2,...) 從指定位置(index)起缩赛,執(zhí)行若干次(deleteCount)刪除或者替換(替換內(nèi)容為item1,item2...)耙箍,返回值為被刪除的部分組成的新數(shù)組
splice函數(shù)分別實(shí)現(xiàn)push、pop酥馍、shift辩昆、unshift方法:
//splice函數(shù)分別實(shí)現(xiàn)push:
var arr=[1,2,3,4,5]
arr.splice(arr.length,0,8,88,888)
//splice函數(shù)分別實(shí)現(xiàn)pop:
arr.splice(arr.length-1,1)
//splice函數(shù)分別實(shí)現(xiàn)shift:
arr.splice(0,1)
//splice函數(shù)分別實(shí)現(xiàn)unshift:
arr.splice(0,0,9,99,99)
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ù)組不變
function filterPositive(arr){
var newArr=[];var j=0;
for (var i = 0; i <arr.length; i++) {
if(arr[i]>0&&typeof arr[i]=='number'){
newArr[j]=arr[i];
j++;
}
}
return newArr
}
var arr = [3, -1, 2, '饑人谷', true]
var newArr = filterPositive(arr)
console.log(newArr) //[3, 2]
Date 任務(wù)
1、 寫一個(gè)函數(shù)getChIntv隧魄,獲取從當(dāng)前時(shí)間到指定日期的間隔時(shí)間
function getChIntv(str){
var targetDate=new Date(str);
var curDate=new Date();
var intvDate=Math.abs(targetDate-curDate)
var totalMinutes=Math.floor(totalSeconds/60)
var totalHours=Math.floor(totalMinutes/60)
var day=Math.floor(totalHours/24)
var hour=Math.floor(totalHours%24)
var mintues=Math.floor(totalMinutes%60)
var seconds=Math.floor(totalSeconds%60)
return day+'天'+hour+'小時(shí)'+mintues+'分鐘'+seconds+'秒'
}
getChIntv('2017-11-03T12:00:00')
2卓练、把hh-mm-dd格式數(shù)字日期改成中文日期
function getChsDate(str){
var arr=str.split('-')
var dict=['零','一','二','三','四','五','六','七','八','九','十','十一','十二','十三','十四','十五','十六','十七','十八','十九','二十','二十一','二十二','二十三','二十四','二十五','二十六','二十七','二十八','二十九','三十','三十一']
var year=arr[0];
var month=arr[1];
var date=arr[2];
var cnYear=dict[year[0]]+dict[year[1]]+dict[year[2]]+dict[year[3]];
var cnMonth=dict[parseInt(month)];
var cnDate=dict[parseInt(date)]
return cnYear+'年'+cnMonth+'月'+cnDate+'日'
}
var str = getChsDate('2015-01-08');
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 seconds=((new Date()-parseInt(time))/1000);
if(seconds<60){
console.log('剛剛')
}
else if(seconds<60*60){
console.log('3分鐘前')
}
else if(seconds<60*60*24){
console.log('8小時(shí)前')
}
else if(seconds<60*60*24*30){
console.log('3天前')
}
else if(seconds<60*60*24*30*12){
console.log('2個(gè)月前')
}
else if(seconds>=(60*60*24*30*12)){
console.log('8年前')
}
}
擴(kuò)展
- 判斷給定年份是否閏年
function leapYear(year){
var d=new Date(year,1,29);
return d.getDate()===29
}
var a=leapYear(2008);
var b=leapYear(2009);
console.log(a); //true
console.log(b); //false
- 怎樣獲取月份相應(yīng)天數(shù)(包括平年和閏年)
function getDaysOfMonth(year,month){
var a=new Date(year,month,1,0,0,0);
var days=new Date(a-1000);
return days.getDate()
}
var days=getDaysOfMonth(2008,2)
console.log(days)