math,陣列和date在學習中常會遇到,本篇將會對其進行解說。
寫一個函數,傳回從min到max之間的隨機整數,包括min不包括max
function getRandom (min,max) { return Math.floor(Math.random()*(max-min) + min) }//Math.floor 返回小于参数值的最大整数//Math.random 返回[0,1)之间的随机数
寫一個函數,傳回從min都max之間的隨機整數,包括min包括max
function getRandom (min,max) { return Math.floor(Math.random()*(max-min+1) + min) }
寫一個函數,產生一個長度為n 的隨機字串,字串字元的取值範圍包括0到9,a到z,A到Z
function getRandomStr (n) { var dict = '0123456789'+ 'abcdefghijklnmopqrstuvwxyz'+ 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'; //一个字典; var string = ''; for (i=0; i<n; i++) { string += dict[Math.floor(Math.random()*62)] ; } return string ; }
寫一個函數,產生一個隨機IP 位址,一個合法的IP 位址為0.0.0.0~255.255.255.255
function getRandIP(){ var ipArr = []; for (i=0; i<4; i++) { ipArr.push(Math.floor(Math.random()*256)); //push()方法把元素从尾部放进数组; } return ipArr.join('.'); }var ip = getRandIP()console.log(ip)
寫一個函數,產生一個隨機顏色字串,合法的顏色為#000000~ #ffffff
function getColor () { var dict = '0123456789abcdef' var color = '#'; for (i=0; i<6; i++) { color += dict[Math.floor(Math.random()*16)]; } return color; } getColor() ;
陣列方法裡push、pop、shift、unshift、join、splice分別是什麼作用?用splice函數分別實作push、pop、shift、unshift方法
push()方法可以把一個元素從尾部插入數組,改變原始數組長度和索引;
var a =[] ;
a.push(4);
a ; // [4]
#pop()方法可以刪除並傳回陣列的最後一個元素,改變原始陣列長度和索引;
var a =[1,2] ;
a.pop(); // 2a ; // [1]
shift()方法可以把陣列的第一個元素從其中刪除,並傳回第一個元素的值,改變原始數組長度和索引;
var a=[1,2,3,4];
a.shift (); //1;a; //[2,3,4]
unshift()方法可在陣列的開頭新增一個或更多元素,並傳回新的長度,改變原始數組長度與索引;
var a=[1,2,3,4,5];
a.unshift(7,8); //7a; //[7,8, 1,2,3,4,5]
splice()方法可以向/從數組添加/刪除項目,然後返回被刪除的項目,沒有刪除則返回空數組,改變原陣列長度與索引;
var a=[1,2,3];
a.splice(0,1); //[1]; //從第0位元開始,刪除1位;a; //[2,3]
var a=[1,2,3];
a.splice(0,0,7,8); //[];從第0位開始,刪除0位,插入7,8(從前插入);a; //[7,8,1,2,3];
var a=[1,2,3,4];
a.splice(1,1,7,8); //[2];從第1位開始,刪除1位([2]),並插入7,8;a; //[1,7,8 ,3,4];
用splice()可以實作push()、pop()、shift()、unshift()這些方法;
var a =[1 ,2,3,4,5,6];
a.splice(a.length,0,n) // 實作push(),n為想要傳入的元素;a.splice(a.length -1,1)// 實作pop();a.splice(0,1) // 實作shift();a.splice(0,0,n) // 實作unshift(),n為想要傳入的元素;
寫一個函數,操作數組,數組中的每一項變成原來的平方,在原始數組上操作
function squareArr(arr){ for (i=0; i<arr.length; i++) { arr[i] = arr[i]*arr[i]; } return arr; }var arr = [2, 4, 6] squareArr(arr)console.log(arr) // [4,16,36]
寫一個函數,操作數組,返回一個新數組,新數組只包含正數,原始數組不變
function filterPositive(arr){ var newArr = []; var k = 0; for (i=0; i<arr.length; i++) { if (typeof arr[i] === 'number') { //验证是否为数字 if(arr[i]>0) { newArr[k] = arr[i]; k++; } } } return newArr; }var arr = [3, -1, 2, '饥人谷', true]var newArr = filterPositive(arr)console.log(newArr) //[3, 2]console.log(arr) //[3, -1, 2, '饥人谷', true]
寫一個函數getChIntv,取得從當前時間到指定日期的間隔時間
//示例var str = getChIntv("2017-02-08");console.log(str); // 距除夕还有 20 天 15 小时 20 分 10 秒 function getChIntv(date) { var time = Math.abs(Date.now()-Date.parse(date)); var day = Math.floor(time/86400000); var hour = Math.floor(time%86400000/3600000); var min = Math.floor(time%86400000%3600000/60000) var s = Math.floor(time%86400000%3600000%60000/1000) var ms = (time%86400000%3600000%60000%1000); return '距离'+date+': '+day+' 天 '+hour+' 小时 '+min+' 分钟 '+s+' 秒 '+ms+' 毫秒 '} getChIntv('2017-04-08') //距离2017-04-08: 55 天 4 小时 0 分钟 45 秒 774 毫秒;
把hh-mm- dd格式數字日期改為中文日期
//示例var str = getChsDate('2015-01-08');console.log(str); // 二零一五年一月八日 var dict ={0:'零',1:'一',2:'二',3:'三',4:'四',5:'五',6:'六',7:'七',8:'八',9:'九', 10:'十',11:'十一',12:'十二',13:'十三',14:'十四',15:'十五',16:'十六', 17:'十七',18:'十八',19:'十九',20:'二十',21:'二十一',22:'二十二',23:'二十三', 24:'二十四',25:'二十五',26:'二十六',27:'二十七',28:'二十八',29:'二十九',30:'三十',31:'三十一'} function getCHT (date) { time = date.split('-'); year = time[0].split(''); for (i=0; i<year.length; i++) { year[i] = dict[year[i]]; } month = dict[parseInt(time[1])]; day = dict[parseInt(time[2])]; return year.join('')+' 年 '+month+' 月 '+day+' 日'} getCHT('2017-06-01') // 二零一七年六月一日;
寫一個函數,參數為時間物件毫秒數的字串格式,傳回值為字串。假設參數為時間物件毫秒數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 str = friendlyDate( '1484286699422' ) // 1分钟前var str2 = friendlyDate('1483941245793') //4天前 function friendlyDate(time){ var nowT = Date.now(); //Date.now()获取当前时间距离1970年1月1日00:00:00的毫秒数 pastT = nowT-time; if (pastT<=60*1000) { return '刚刚' }if (pastT>60000 && pastT<3600*1000) { return Math.floor(pastT/60000)+'分钟前' }if (pastT>=3600*1000 && pastT<24*3600*1000) { return Math.floor(pastT/(3600*1000))+'小时前' }if (pastT>=24*3600*1000 && pastT<30*24*3600*1000) { return Math.floor(pastT/(24*3600*1000))+'天前' }if (pastT>=30*24*3600*1000 && pastT<12*30*24*3600*1000) { return Math.floor(pastT/(30*24*3600*1000))+'月前' }else { return Math.floor(pastT/(360*24*3600*1000))+'年前' } } friendlyDate(1496246400000) //一天前;
本篇詳解math、陣列和date相關內容和例子,更多的相關內容請關注php中文網。
相關推薦:
#JavaScript完整總結之定時器&DOM的document
#
以上是關於Math、陣列、Date的相關例子的詳細內容。更多資訊請關注PHP中文網其他相關文章!