1、寫(xiě)一個(gè)函數(shù)沽损,返回從min到max之間的隨機(jī)整數(shù)灯节,包括min不包括max
//Math.random()返回的是0-1之間的隨機(jī)數(shù),可能等于0绵估,但一定小于1.
function random(min,max) {
return Math.floor(Math.random() * (max - min ) + min);
}
//檢驗(yàn)隨機(jī)數(shù)出現(xiàn)的次數(shù)是否均等
function random(min,max) {
var dist = {};
for (var i=0; i<10000; i++) {
//將出現(xiàn)的數(shù)字保存為對(duì)象的key值并記錄他們出現(xiàn)的次數(shù)
var key = Math.floor(Math.random() * (max - min) + min);
if (dist[key]) {
dist[key]++
}else {
dist[key] = 1;
}
}
console.log(dist);
}
random(2,8);
2炎疆、寫(xiě)一個(gè)函數(shù),返回從min都max之間的隨機(jī)整數(shù)国裳,包括min包括max
function randomInt(min, max) {
return Math.floor(Math.random() * (max - min + 1)) + min;
}
3形入、寫(xiě)一個(gè)函數(shù),生成一個(gè)長(zhǎng)度為 n 的隨機(jī)字符串缝左,字符串字符的取值范圍包括0到9亿遂,a到 z浓若,A到Z。
function getRandStr(len){
//補(bǔ)全函數(shù)
}
var str = getRandStr(10); // 0a3iJiRZap
結(jié)果:
function getRandStr(len){
var dict = '0123456789abcdefghijkmnlopqrstuvwxyzABCDEFGHIJKMNLOPQRSTUVWXYZ';
var ch, str = '';
for(var i = 0; i < len; i++){
var idx = Math.floor(Math.random() * 62);
ch = dict[idx];
str += ch;
}
return str;
}
var str = getRandStr(10); // 0a3iJiRZap
4蛇数、寫(xiě)一個(gè)函數(shù)挪钓,生成一個(gè)隨機(jī) IP 地址,一個(gè)合法的 IP 地址為 0.0.0.0~255.255.255.255
function getRandIP(){
//補(bǔ)全
}
var ip = getRandIP()
console.log(ip) // 10.234.121.45
結(jié)果:
function getRandIP(){
var obj = [];
for(var i = 0; i < 4; i++){
obj[i] = Math.floor(Math.random() * 256);
}
return obj.join('.');
}
var ip = getRandIP()
console.log(ip) // 10.234.121.45
5苞慢、寫(xiě)一個(gè)函數(shù)诵原,生成一個(gè)隨機(jī)顏色字符串英妓,合法的顏色為#000000~ #ffffff
function getRandColor(){
}
var color = getRandColor()
console.log(color) // #3e2f1b
結(jié)果:
function getRandColor(){
var dict = '0123456789abcdef';
var len = dict.length;
var ch, str = '';
for(var i = 0; i < 6; i++){
var idx = Math.floor(Math.random() * len);
ch = dict[idx];
str += ch;
}
return '#' + str;
}
var color = getRandColor()
console.log(color) // #3e2f1b
數(shù)組
1挽放、數(shù)組方法里push
、pop
蔓纠、shift
辑畦、unshift
、join
腿倚、split
分別是什么作用纯出?用 splice函數(shù)分別實(shí)現(xiàn)push
、pop
敷燎、shift
暂筝、unshift
方法
- push() 方法添加一個(gè)或多個(gè)元素到數(shù)組的末尾,并返回?cái)?shù)組新的長(zhǎng)度(length 屬性值)硬贯。
var arr = [];
arr.push(1);
arr.push(2);
console.log(arr); //[1,2]
- pop() 方法刪除一個(gè)數(shù)組中的最后的一個(gè)元素焕襟,并且返回這個(gè)元素。
arr.pop() //2
console.log(arr) //[1]
- shift() 方法從數(shù)組中刪除第一個(gè)元素饭豹,并返回該元素鸵赖。此方法更改數(shù)組的長(zhǎng)度。
arr.shift();
console.log(arr); //['b','c','d']
- unshift() 方法在數(shù)組的開(kāi)頭添加一個(gè)或者多個(gè)元素拄衰,并返回?cái)?shù)組新的 length 值它褪。
var arr = ['b','c','d'];
arr.unshift('a');
console.log(arr); //['a','b','c','d'];
- join() 方法將數(shù)組(或一個(gè)類數(shù)組對(duì)象)的所有元素連接到一個(gè)字符串中。
var arr = ['luoqian','is','very','good']
arr.join(); // "luoqian,is,very,good"
- split() 方法通過(guò)將字符串分成子字符串翘悉,從而將一個(gè)String對(duì)象拆分為一個(gè)字符串?dāng)?shù)組茫打。
var str = "luo-qian";
str.split('-'); //["luo","qian"];
//傳入第二個(gè)參數(shù)規(guī)定數(shù)組的長(zhǎng)度
str.spilt("-",1) //["luo"]
- splice() 方法通過(guò)刪除現(xiàn)有元素和/或添加新元素來(lái)更改數(shù)組的內(nèi)容。
var arr = [1, 2, 3, 4, 5];
//實(shí)現(xiàn)push()方法:
arr.splice(5,0,6);
console.log(arr);//[1, 2, 3, 4, 5, 6]
//實(shí)現(xiàn)pop()方法:
arr.splice(5,1);
console.log(arr);//[1, 2, 3, 4, 5]
//實(shí)現(xiàn)shift()方法:
arr.splice(0,0,0);
console.log(arr);//[0, 1, 2, 3, 4, 5]
//實(shí)現(xiàn)unshift()方法:
arr.splice(0,1);
console.log(arr);//[1, 2, 3, 4, 5]
2妖混、寫(xiě)一個(gè)函數(shù)老赤,操作數(shù)組,數(shù)組中的每一項(xiàng)變?yōu)樵瓉?lái)的平方源葫,在原數(shù)組上操作
function squareArr(arr){
}
var arr = [2, 4, 6]
squareArr(arr)
console.log(arr) // [4, 16, 36]
結(jié)果:
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诗越、寫(xiě)一個(gè)函數(shù),操作數(shù)組息堂,返回一個(gè)新數(shù)組嚷狞,新數(shù)組中只包含正數(shù)块促,原數(shù)組不變
function filterPositive(arr){
}
var arr = [3, -1, 2, '饑人谷', true]
var newArr = filterPositive(arr)
console.log(arr) //[3, 2]
結(jié)果:
function filterPositive(arr){
var newArr = [];
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) //[3, 2]
console.log(arr) //[3, -1, 2, '饑人谷', true]
Date
1、 寫(xiě)一個(gè)函數(shù)getChIntv
床未,獲取從當(dāng)前時(shí)間到指定日期的間隔時(shí)間
var str = getChIntv("2017-02-08");
console.log(str); // 距除夕還有 20 天 15 小時(shí) 20 分 10 秒
結(jié)果:
function getChIntv(time){
var nowTime = Date.now();
var endTime = Date.parse(time) - 8*60*60*1000;
var intTime = endTime - nowTime;
var days = parseInt(intTime / (1000*60*60*24));
var hours =parseInt( (intTime % (1000*60*60*24)) / (1000*60*60));
var minutes = parseInt(((intTime % (1000*60*60*24)) % (1000*60*60)) / (1000*60));
var seconds = parseInt((((intTime % (1000*60*60*24)) % (1000*60*60)) % (1000*60)) / 1000);
return '距除夕還有 '+days+' 天 '+hours+' 小時(shí) '+minutes+' 分 '+seconds+' 秒';
}
var str = getChIntv("2017-02-08");
console.log(str); // 距除夕還有 4 天 12 小時(shí) 16 分 14 秒
2竭翠、把hh-mm-dd
格式數(shù)字日期改成中文日期
var str = getChsDate('2015-01-08');
console.log(str); // 二零一五年一月八日
結(jié)果:
function getChsDate(time){
var dict = '零,一,二,三,四,五,六,七,八,九,十,十一,十二,十三,十四,十五,十六,十七,十八,十九,二十,二十一,二十二,二十三,二十四,二十五,二十六,二十七,二十八,二十九,三十,三十一';
dict = dict.split(',');
var arr = time.split('-');
var year = arr[0];
var month = arr[1];
var day = arr[2];
var yearCh = [];
for(var i = 0; i < 4; i++){
yearCh.push(dict[parseInt(year[i])]);
}
var monthCh = dict[parseInt(month)];
var dayCh = dict[parseInt(day)];
var str = yearCh.join('')+'年'+monthCh+'月'+dayCh+'日';
return str;
}
var str = getChsDate('2015-01-08');
console.log(str); // 二零一五年一月八日
3、寫(xiě)一個(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 str = friendlyDate( '1484286699422' ) // 1分鐘前
var str2 = friendlyDate('1483941245793') //4天前
結(jié)果:
function friendlyDate(time){
var nowTime = Date.now();
var intTime = ( nowTime - time ) / 1000;
var result;
if(intTime < 60){
return result = '剛剛';
}else if(intTime < 60*60){
return result = parseInt(intTime / 60) +'分鐘前';
}else if(intTime < 60*60*24){
return result = parseInt(intTime / (60*60)) +'小時(shí)前';
}else if(intTime < 60*60*24*30){
return result = parseInt(intTime / (60*60*24)) +'天前';
}else if(intTime < 60*60*24*30*12){
return result = parseInt(intTime / (60*60*24*30)) +'個(gè)月前';
}
return result = parseInt(intTime / (60*60*24*30*12)) +'年前';
}
var str = friendlyDate( '1484286699422' ) // 1分鐘前
var str2 = friendlyDate('1483941245793') //4天前
- 學(xué)習(xí)擴(kuò)展
- Date 使用中的坑问裕,看視頻 坑人的 Date
- 怎樣判斷閏年?怎樣獲取月份相應(yīng)天數(shù)(包括平年和閏年)?