Math
写一个函数,返回从min到max之间的 随机整数,包括min不包括max
function getRandom(min,max){
return Math.floor(Math.random()*(max-min)+min)
}
写一个函数,返回从min都max之间的 随机整数,包括min包括max
function getCover(min,max){
return Math.floor(Math.random()*(max+1-min)+min)
}
写一个函数,生成一个长度为 n 的随机字符串,字符串字符的取值范围包括0到9,a到 z,A到Z。
function getRandStr(len){
var dict='0123456789abcdefghigklmnopqstuvwxyzABCDEFGHIGKLMNOPQRSTUVWXYZ';
var randomstr = '';
for(var i=0;i
写一个函数,生成一个随机 IP 地址,一个合法的 IP 地址为 0.0.0.0~255.255.255.255
function randomIP(){
var IP=[]
for(i=0; i<4; i++){
IP.push(Math.floor(Math.random()*256))
}
return IP.join(".")
}
写一个函数,生成一个随机颜色字符串,合法的颜色为#000000~ #ffffff
function getRandColor(){
var dict="0123456789abcdf"
var str= ""
for(i=0; i<6; i++){
str+=dict[Math.floor(Math.random()*dict.length)]
}
return str="#"+str
}
数组
数组方法里push、pop、shift、unshift、join、splice分别是什么作用?用 splice函数分别实现push、pop、shift、unshift方法
- push:数组末尾添加新元素,返回新数组长度
// push
function push(arr,item){
arr.splice(arr.length,0,item)
return arr.length
}
- pop:删除数组最后一个元素,返回删除元素
// pop
function pop(arr){
arr.splice(arr.length-1,1)
return arr.splice(arr.lenght-1,1)[0]
}
- shift:删除数组第一个元素,返回删除元素
// shift
function shift(arr){
arr.splice(0,1)
return arr.splice(0,1)[0]
}
- unshift:数组头部添加元素,返回新数组长度
// unshift
function unshift(arr,item){
arr.splice(0,1,item)
return arr.length
}
- join:将数组使用参数作为连接符连接成一字符串
- split:将字符串分割成子字符串组成新数组
总结:
1.push和unshift返回值是新数组的长度值,pop和shift返回的是被删除的元素(非数组形式).push和pop都是在数组元素末位加减,unshift和shift都是在数组元素首位加减.
2.splice删除元素时,返回的是第一个参数索引值位置上的元素(数组形式),当第一个参数大于最大索引值返回空数组. splice插入元素时,在第一个参数索引值位置前面插入元素,返回的是空数组[].
写一个函数,操作数组,数组中的每一项变为原来的平方,在原数组上操作
function squareArr(arr){
for(var i=0; i
写一个函数,操作数组,返回一个新数组,新数组中只包含正数,原数组不变
function filterNegative(arr){
var positive=[]
for(i=0; i0){
positive.push(arr[i])
}
}
return positive
}
Date
写一个函数getChIntv,获取从当前时间到指定日期的间隔时间
function getChIntv(dateStr){
var targetDate= new Date(dateStr)
var curDate= new Date()
var offset= Math.abs(curDate-targetDate)
var totalS= Math.floor(offset/1000)
var seconds= totalS%60
var totalM= Math.floor(totalS/60)
var minutes= totalM%60
var totalH= Math.floor(totalM/60)
var hours= totalH%24
var totalD= Math.floor(totalH/24)
return "距今"+totalD+"天"+hours+"小时"+minutes+"分钟"+seconds+"秒"
}
var str = getChIntv("2017-02-08");
console.log(str);
把hh-mm-dd格式数字日期改成中文日期
function getChsDate(timeStr){
var dict = ['零','一','二','三','四','五','六','七','八','九','十','十一','十二','十三','十四','十五','十六','十七','十八','十九','二十','二十一','二十二','二十三','二十四','二十五','二十六','二十七','二十八','二十九','三十','三十一']
var arr = timeStr.split('-')
var year = arr[0]
var day = arr[2]
var chYear = dict[parseInt(year[0])] + dict[parseInt(year[1])] + dict[parseInt(year[2])] + dict[parseInt(year[3])]
var chMonth = dict[parseInt(month)]
var chDay = dict[parseInt(day)]
return chYear + '年' + chMonth + '月' + chDay + '日'
}
var str = getChsDate('2015-01-08');
console.log(str);
写一个函数,参数为时间对象毫秒数的字符串格式,返回值为字符串。假设参数为时间对象毫秒数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(timestr){
var nowdate= Date.now()
var offset=(nowdate-timestr)/1000/60
if(offset<1){
return "刚刚"
}else if(offset>=1 && offset<60){
return parseInt(offset)+"分钟前"
}else if(offset>=60 && offset<24*60){
return parseInt(offset/60)+"小时前"
}else if(offset>=24*60 && offset<30*24*60){
return parseInt(offset/60/24)+"天前"
}else if(offset>=30*24*60 && offset<12*30*24*60){
return parseInt(offset/60/24/30)+"个月前"
}else {
return parseInt(offset/60/24/30/12)+"年前"
}
}