一酬屉、Math
1、寫一個函數(shù)杀饵,返回從min到max之間的 隨機整數(shù)垛吗,包括min不包括max
Math.random();//返回一個大于等于0烁登,小于1的偽隨機數(shù)。
1. function getRandom(min,max){
return min+(Math.random()*(max-min));
}
2锨络、寫一個函數(shù)狼牺,返回從min都max之間的 隨機整數(shù),包括min包括max
function getRandomInt(min, max) {
return Math.floor(Math.random() * (max - min +1) + min);
}
3是钥、寫一個函數(shù),生成一個長度為 n 的隨機字符串虏冻,字符串字符的取值范圍包括0到9弹囚,a到 z,A到Z鸥鹉。
function getRandStr(len){
var dist='0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXZY';
var str='';
for(var i=0;i<len;i++){
var index=Math.floor(Math.random()*62);
var ch=dist[index];
str+=ch;
}
return str;
}
var str = getRandStr(10); // 0a3iJiRZap
console.log(str);
4毁渗、寫一個函數(shù),生成一個隨機 IP 地址灸异,一個合法的 IP 地址為 0.0.0.0~255.255.255.255
function getRandIP(){
var arr=new Array(4);
for(var i=0;i<arr.length;i++){
arr[i]=Math.floor(Math.random()*256);//IP地址能包括255嗎?
}
var str=arr.join(".");
return str;
}
var ip = getRandIP()
console.log(ip) // 10.234.121.45
5细溅、寫一個函數(shù)儡嘶,生成一個隨機顏色字符串,合法的顏色為#000000~ #ffffff
function getRandStr(){
var dist='0123456789abcdef';
var str='#';
for(var i=0;i<6;i++){
var index=Math.floor(Math.random()*16);
var ch=dist[index];
str+=ch;
}
return str;
}
var s=getRandStr();
console.log(s);
二蹦狂、數(shù)組
1、數(shù)組方法里push窜骄、pop、shift糠亩、unshift准验、join、splice分別是什么作用糊饱?用 splice函數(shù)分別實現(xiàn)push、pop滞项、shift夭坪、unshift方法
push():將一個或多個元素添加到數(shù)組的末尾,并返回數(shù)組的新長度台舱。
如:
var numbers = [1, 2, 3];
numbers.push(4);
console.log(numbers); // [1, 2, 3, 4]
pop():從數(shù)組中刪除最后一個元素,并返回該元素的值柜去。此方法更改數(shù)組的長度拆宛。
let a = [1, 2, 3];
a.length; // 3
a.pop(); // 3
console.log(a); // [1, 2]
a.length; // 2
shift():從數(shù)組中刪除第一個元素,并返回該元素的值股耽。此方法更改數(shù)組的長度
var a = [1, 2, 3];
var b = a.shift();
console.log(a); // [2, 3]
console.log(b); // 1
unshift():方法將一個或多個元素添加到數(shù)組的開頭钳幅,并返回新數(shù)組的長度
var a = [1, 2, 3];
a.unshift(4, 5);
console.log(a);// [4, 5, 1, 2, 3]
join():將數(shù)組或類數(shù)組對象的所有元素連接到一個字符串中。join() 方法敢艰,不會改變數(shù)組!
var a= ['Wind', 'Rain', 'Fire'];
a.join(); //默認為 ",", 'Wind,Rain,Fire'
a.join(""); //'Wind-Rain-Fire'
a.join("-"); //'Wind-Rain-Fire'
console.log(a);// ['Wind', 'Rain', 'Fire']
splice():方法通過刪除現(xiàn)有元素和/或添加新元素來更改數(shù)組的內(nèi)容震嫉。
array.splice(start, howmany, item1, item2, ...)
splice() 方法會直接對數(shù)組進行修改。
var myFish = ["angel", "clown", "mandarin", "surgeon"];
var removed = myFish.splice(2, 0, "drum");//從第 2 位開始刪除 0 個元素扼睬,插入 "drum"
console.log(removed);//["angel", "clown", "drum", "mandarin", "surgeon"]
用 splice函數(shù)分別實現(xiàn)push悴势、pop、shift瞳浦、unshift方法
var Obj={
push: function push(arr,item){
arr.splice(arr.length,item);
return arr
},
pop: function pop(arr){
arr.splice(arr.length-1,1);
return arr;
},
shift: function shift(arr){
arr.splice(0,1);
return arr;
},
unshift:function unshift(arr,index,item){
arr.splice(0,0,item);
return arr;
}
};
var a=Obj.push([1,2,3],3);
console.log(a);//[1, 2, 3]
var b=Obj.pop([1,2,3]);
console.log(b);//[1, 2]
var c=Obj.shift([1,2,3]);
console.log(c);//[2, 3]
var d=Obj.unshift([1,2],3);
console.log(d);//[3, 1, 2]
//把題目理解錯誤了
2叫潦、寫一個函數(shù)官硝,操作數(shù)組,數(shù)組中的每一項變?yōu)樵瓉淼钠椒角饧埽谠瓟?shù)組上操作
function squareArr(arr){
for (var 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]
3岖研、寫一個函數(shù),操作數(shù)組孙援,返回一個新數(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
1础淤、 寫一個函數(shù)getChIntv,獲取從當前時間到指定日期的間隔時間
function getChIntv(time){
var endTime = new Date(time).getTime();
var nowTIime=new Date().getTime();
var offsetTime=parseInt((endTime-nowTIime)/1000);//秒
var days=parseInt(offsetTime/(60*60*24));
var hours=parseInt((offsetTime/(60*60)%24));
var minites=parseInt(offsetTime/60%60);
var seconds=parseInt(offsetTime%60);
days=days<10?"0"+days:days;
hours=hours<10?"0"+hours:hours;
minites=minites<10?"0"+minites:minites;
seconds=seconds<10?"0"+seconds:seconds;
return "距6月3日還有"+days+"天"+hours+"小時"+minites+"分"+seconds+"秒";
}
var str = getChIntv("2017-06-03 00:00:00");
console.log(str); // 距6月3日還有00天02小時15分59秒
2币砂、把hh-mm-dd格式數(shù)字日期改成中文日期
function getCh(str) {
var newStr=str.split("-");//["2017", "08", "09"]
console.log(newStr);
var years=newStr[0];
var mouth=newStr[1];
var days=newStr[2];
var dict=["零","一","二","三","四","五","六","七","八","九","十","十一","十二","十三","十四","十五","十六","十七","十八","十九","二十","二十一","二十二","二十三","二十四","二十五","二十六","二十七","二十八","二十九","三十","三十一"];
var chYears=dict[parseInt(years[0])]+dict[parseInt(years[1])]+dict[parseInt(years[2])]+dict[parseInt(years[3])]+"年";
var chMouth=dict[parseInt(mouth)+'']+"月";
var chDays=dict[parseInt(days)+'']+"日";
var newDate=[];
newDate.unshift(chYears,chMouth,chDays);
var res=newDate.join("");
return res;
}
var str="2017-08-09";
var a = getCh(str);
console.log(a);//二零一七年八月九日
3玻侥、寫一個函數(shù),參數(shù)為時間對象毫秒數(shù)的字符串格式蜜徽,返回值為字符串。假設(shè)參數(shù)為時間對象毫秒數(shù)t拘鞋,根據(jù)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 nowTime=new Date().getTime();//當前時間距離1970年的毫秒數(shù)
var startTime=new Date(time).getTime();
var t=parseInt(nowTime-startTime)/1000;//秒
if(t/60<1){
return "剛剛"
}else if((t>=60)&&(t<=3600)){
return parseInt(t/60)+"分鐘前";
}else if(t>=(60*60)&&(t<=(60*60*24))){
return parseInt(t/3600%24)+"小時前";
}else if((t>=(60*60*24))&&(t<=(60*60*24*30))){
return parseInt(t/(60*60*24))+"天前";
}else if((60*60*24*30)<t&&(t<=(60*60*24*365))){
return parseInt(t/(60*60*24*30))+"個月前";
}else if(t>=(60*60*24*365)){
return parseInt(t/(60*60*24*365))+"年前";
}
}
var str = friendlyDate( '2017-06-03 10:30:00' );
console.log(str);// 30分鐘前,寫完這題的時間是:2017-06-03 11:00:00
var str2 = friendlyDate('2017-06-01 00:00:00');
console.log(str2); //2天前
var str1=friendlyDate('2017-06-03 11:02:40');
console.log(str1);//剛剛
var str3=friendlyDate('2017-05-01 00:00:00');
console.log(str3);//1個月前
var str4=friendlyDate('2014-05-01 00:00:00');
console.log(str4);//3年前