Math
寫一個函數(shù)括改,返回從min到max之間的 隨機整數(shù)弃酌,包括min不包括max
function getRandomInt(min, max) {
min = Math.ceil(min);
max = Math.floor(max);
return Math.floor(Math.random() * (max - min) + min);
}
寫一個函數(shù)犬第,返回從min都max之間的 隨機整數(shù)荸哟,包括min包括max
function getRandomInt(min, max) {
min = Math.ceil(min);
max = Math.floor(max);
return Math.floor(Math.random() * (max - min+1) + min);
}
寫一個函數(shù)假哎,生成一個長度為 n 的隨機字符串瞬捕,字符串字符的取值范圍包括0到9,a到 z舵抹,A到Z肪虎。
function getRandomInt(min, max) {
min = Math.ceil(min);
max = Math.floor(max);
return Math.floor(Math.random() * (max - min+1) + min);
}
function getRandStr(len) {
var arr = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
var str = "";
for (var i = 0; i < len; i++) {
str += arr[getRandomInt(0,61)];
}
console.log(str);
}
var str = getRandStr(10); // 0a3iJiRZap
寫一個函數(shù),生成一個隨機 IP 地址惧蛹,一個合法的 IP 地址為 0.0.0.0~255.255.255.255
function getRandomInt(min, max) {
min = Math.ceil(min);
max = Math.floor(max);
return Math.floor(Math.random() * (max - min + 1) + min);
}
function getRandIP() {
var arr = [];
for (var i = 0; i < 4; i++) {
arr.push(getRandomInt(0, 255));
}
arr.join(".");
return arr;
}
var ip = getRandIP()
console.log(ip) // 10.234.121.45
寫一個函數(shù)扇救,生成一個隨機顏色字符串,合法的顏色為#000000~ #ffffff
function getRandomInt(min, max) {
min = Math.ceil(min);
max = Math.floor(max);
return Math.floor(Math.random() * (max - min + 1) + min);
}
function getRandColor() {
var str = "0123456789abcdef";
var result = "#";
for (var i=0; i < 6; i++) {
result+=(str[getRandomInt(0, 15)]);
}
return result;
}
var color = getRandColor()
console.log(color) // #3e2f1b
Array
數(shù)組方法里push香嗓、pop迅腔、shift、unshift陶缺、join、splice分別是什么作用洁灵?用 splice函數(shù)分別實現(xiàn)push饱岸、pop、shift徽千、unshift方法
- push:將一個或多個元素添加到數(shù)組的末尾苫费,改變原數(shù)組,更改數(shù)組的長度双抽。
- pop:從數(shù)組中刪除最后一個元素百框,并返回刪除元素。改變原數(shù)組牍汹,更改數(shù)組的長度铐维。
- shift:方法從數(shù)組中刪除第一個元素,并返回該元素的值慎菲。此方法更改數(shù)組的長度嫁蛇。
- unshift:方法將一個或多個元素添加到數(shù)組的開頭,并返回新數(shù)組的長度露该。
- join:arr.join('')方法將數(shù)組(或一個類數(shù)組對象)的所有元素以join中提供的參數(shù)連接成一個字符串中睬棚。不會修改原數(shù)組內容
- splice:方法通過刪除現(xiàn)有元素和/或添加新元素來更改一個數(shù)組的內容。
var a = [1, 2, 3];
a.splice(a.length, 0, 4); // a.push
console.log(a); //1,2,3,4
a.splice(a.length--, 1); //a.pop
console.log(a); // 1, 2, 3
a.splice(0, 1) //a.shift();
console.log(a);
a.splice(0, 0, 1) //a.unshift(1);
console.log(a);
寫一個函數(shù)解幼,操作數(shù)組抑党,數(shù)組中的每一項變?yōu)樵瓉淼钠椒剑谠瓟?shù)組上操作
function squareArr(arr) {
for (var i = 0; i < arr.length; i++) {
arr[i] = Math.pow(arr[i], 2);
}
return arr;
}
var arr = [2, 4, 6]
squareArr(arr)
console.log(arr) // [4, 16, 36]
寫一個函數(shù)撵摆,操作數(shù)組底靠,返回一個新數(shù)組,新數(shù)組中只包含正數(shù)特铝,原數(shù)組不變
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
寫一個函數(shù)getChIntv苛骨,獲取從當前時間到指定日期的間隔時間
function getChIntv(appointdate){
var interval = Date.parse(appointdate) - Date.now()
var d = Math.floor( interval / (24 * 60 * 60 *1000))
var dr = interval % (24 * 60 * 60 *1000)
var h = Math.floor( dr / (60 * 60 * 1000))
var hr = dr % (60 * 60 * 1000)
var m = Math.floor( hr / ( 60 * 1000))
var mr = hr % 60 *1000
var s = mr / 1000
return ( d + ' days ' + h + ' hours ' + m +' minutes ' + s + ' seconds ')
}
var str = getChIntv("2017-09-03");
console.log(str); // 距開學還有 49 天 22 小時 28 分 10 秒
把hh-mm-dd格式數(shù)字日期改成中文日期
function getChsDate(str){
var dict = ["零","一","二","三","四","五","六","七","八","九","十","十一","十二","十三","十四","十五","十六","十七","十八","十九","二十","二十一","二十二","二十三","二十四","二十五","二十六","二十七","二十八","二十九","三十","三十一"];
var arr = str.split('-') // split 字符串切割成數(shù)組
var year = arr[0]
var month = arr[1]
var day = arr[2]
var cyear = dict[year[0]] + dict[year[1]] + dict[year[2]] + dict[year[3]] +'年'
var cmonth = dict[month[0]] + dict[month[1]] + '月'
var cday = dict[day[0]] +dict[day[1]] + '日'
return cyear + cmonth + cday;
}
var str = getChsDate('2015-0123456789Abcdef-08');
console.log(str); // 二零一五年一月八日
寫一個函數(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 now = Date.now();
var offset = (now - time) / 1000 / 60 ; // 換算成 分
var result ='';
if((offset / 60 / 24 / 30 / 12) >= 1){
result = '8年前';
}else if((offset / 60 / 24 / 30) >= 1){
result = '2個月前';
}else if((offset / 60 / 24) >= 1){
result = '3天前';
}else if((offset / 60) >= 1){
result = '8小時前';
}else if(offset >=1 ){
result = '3分鐘前';
}else if(offset < 1){
result = '剛剛';
}
return result;
}
var str = friendlyDate( '1484286699422' ); //2個月前
var str2 = friendlyDate('1383941256455'); // 8年前
console.log(str);
console.log(str2);