Math任務(wù)
1、寫一個(gè)函數(shù)偷仿,返回從min到max之間的 隨機(jī)整數(shù),包括min不包括max
function havemin(min,max){
return Math.floor(Math.random()*(max-min))+min
}
console.log(havemin(1,9))
2宵蕉、寫一個(gè)函數(shù)酝静,返回從min都max之間的 隨機(jī)整數(shù),包括min包括max
function allinteger(min,max){
return Math.floor(Math.random()*(max-min+1))+min
}
console.log(allinteger(1,9))
3羡玛、寫一個(gè)函數(shù)别智,生成一個(gè)長度為 n 的隨機(jī)字符串,字符串字符的取值范圍包括0到9稼稿,a到 z薄榛,A到Z。
function getRandStr(len){
var dict='0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
var str='';
var arr=dict.split('')
for(var i=0;i<len;i++){
str+=arr[Math.floor(Math.random()*62)]
}
return str
}
var str = getRandStr(10); // 0a3iJiRZap
console.log(str)
4让歼、寫一個(gè)函數(shù)敞恋,生成一個(gè)隨機(jī) IP 地址,一個(gè)合法的 IP 地址為 0.0.0.0~255.255.255.255
function getRandIP(){
var arr=[];
for(var i=0;i<4;i++){
arr[i]=Math.floor(Math.random()*256)
}
return arr.join('.')
}
var ip = getRandIP()
console.log(ip)
5谋右、寫一個(gè)函數(shù)硬猫,生成一個(gè)隨機(jī)顏色字符串,合法的顏色為#000000~ #ffffff
function getRandColor(){
var arr=[]
var dict='0123456789abcdef'
arr.push('#')
for(var i=0;i<6;i++){
arr.push(dict[Math.floor(Math.random()*16)]) //= =
}
return arr.join('')
}
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方法
http://blog.csdn.net/aerchi/article/details/25238119
- push 和 pop
這兩個(gè)函數(shù)都是對數(shù)組從尾部進(jìn)行壓入或彈出操作悉尾。push(arg1,arg2,...)可以每次壓入一個(gè)或多個(gè)元素,并返回更新后的數(shù)組長度挫酿。注意如果參數(shù)也是數(shù)組的話,則是將全部數(shù)組當(dāng)做一個(gè)元素壓入到原本的數(shù)組里面去愕难。pop() 函數(shù)則每次只會彈出結(jié)尾的元素早龟,并返回彈出的元素惫霸,若是是對空組數(shù)調(diào)用 pop() 則返回undefined。- shift() 用于將數(shù)組的第一個(gè)元素從原數(shù)組中刪除葱弟,并返回第一個(gè)元素的值(即被刪除的元素的值)壹店。
unshift() 方法可向數(shù)組的開頭添加一個(gè)或更多元素,并返回新的長度芝加。- join()作用是將數(shù)組各個(gè)元素是通過指定的分隔符進(jìn)行連接成為一個(gè)字符串
- splice()splice方法用于一次解決數(shù)組的添加硅卢、刪除。
三個(gè)參數(shù):1.開始操作的元素下標(biāo) 2.刪除元素的位移 3.插入的新元素藏杖,當(dāng)然也可以寫多個(gè)
var arr=[1,3,5,2,4,6,9]
arr.splice(arr.length,0,7,7,7) //push()
arr.splice(arr.length-1,1) //pop()
arr.splice(0,1) //shift()
arr.splice(0,0,7,7,7) //unshift()
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]
}
}
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=[]
for(var i=0;i<arr.length;i++){
if(arr[i]>0&&typeof(arr[i])==='number'){
newarr.push(arr[i])
}
}
return newarr
}
var arr = [3, -1, 2, '饑人谷', true]
var newArr = filterPositive(arr)
console.log(newArr) //[3, 2]
console.log(arr) //[3, -1, 2, '饑人谷', true]
Date 任務(wù)
1戚长、 寫一個(gè)函數(shù)getChIntv,獲取從當(dāng)前時(shí)間到指定日期的間隔時(shí)間
function getChIntv(time){
var now = new Date()
//console.log('now:'+now)
var then= new Date(time)
//console.log('then:'+then)
var intv= Math.abs(now-then)
//console.log('intv:'+intv)
var ab='還有'
if((now-then)>0){
ab='已經(jīng)過了'
}
var ms= Math.floor(intv%1000)
var s= Math.floor((intv%(1000*60)/1000))
var min= Math.floor((intv%(1000*60*60))/(1000*60))
var h= Math.floor((intv%(1000*60*60*24))/(1000*60*60))
var d= Math.floor(intv/(1000*60*60*24))
return ('距離'+time+ab+d+'天'+h+'時(shí)'+min+'分鐘'+s+'秒'+ms+'毫秒')
}
var str = getChIntv("2017-02-08");
console.log(str);
2怠苔、把hh-mm-dd格式數(shù)字日期改成中文日期
function getChsDate(time){
var dict=["零","一","二","三","四","五","六","七","八","九","十","十一","十二","十三","十四","十五","十六","十七","十八","十九","二十","二十一","二十二","二十三","二十四","二十五","二十六","二十七","二十八","二十九","三十","三十一"]
var arr=time.split('-')
var part=[]
for(var i=0;i<arr.length;i++){
part[i]=arr[i].split('')
for(var j=0;j<part[i].length;j++){
if(part[i][j]=='0'&&(i!=0)&&(j!=1)){
part[i][j]=''
}
part[i][j]=dict[part[i][j]]
}
}
return part[0].join('')+'年'+part[1].join('')+'月'+part[2].join('')+'日'
}
var str = getChsDate('2015-01-08');
console.log(str); // 二零一五年一月八日
3同廉、寫一個(gè)函數(shù),參數(shù)為時(shí)間對象毫秒數(shù)的字符串格式嘀略,返回值為字符串恤溶。假設(shè)參數(shù)為時(shí)間對象毫秒數(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 now=Date.now()
console.log(now)
var t=now-time
if(t<1000*60){
return '剛剛'
}else if(t<1000*60*60){
return '3分鐘前'
}else if(t<1000*60*60*24){
return '8小時(shí)前'
}else if(t<1000*60*60*24*30){
return '3天前'
}else if(t<1000*60*60*24*30*12){
return '2個(gè)月前'
}else{
return '8年前'
}
}
var str = friendlyDate( '1502174345728' ) // 1分鐘前
var str2 = friendlyDate('1483941245793') //4天前
console.log(str)
console.log(str2)
//具體版
function friendlyDate(time){
var now=Date.now()
console.log(now)
var t=now-time
var s=1000,
m=s*60,
h=m*60,
d=h*24,
mon=d*30,
y=mon*12;
if(t<m){
return '剛剛'
}else if(t<=h){
return Math.floor(t/m)+'分鐘前'
}else if(t<=d){
return Math.floor(t/h)+'小時(shí)前'
}else if(t<=mon){
return Math.floor(t/d)+'天前'
}else if(t<=y){
return Math.floor(t/mon)+'個(gè)月前'
}else{
return Math.floor(t/y)+'年前'
}
}
var str = friendlyDate( '1502174345728' )
var str2 = friendlyDate('1483941245793')
console.log(str)
console.log(str2)
var aa=new Date(1483941245793)
var bb=aa.toString()
console.log(bb)