Q1.写一个函数,返回从min到max之间的随机整数,包括min不包括max
答:function radom(min, max){
return +Math.floor(Math.random( )*(max - min)+min);
}
Q2. 写一个函数,返回从min都max之间的随机整数,包括min包括max
答:function radom(min,max){
return +Math.floor(Math.random( )*(max-min+1)+min);
}
Q3. 写一个函数,生成一个长度为 n 的随机字符串,字符串字符的取值范围包括0到9,a到 z,A到Z。
答:function getrandStr(len){
var dict = '01234567899999abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
var str = ' ';
for ( var i = 0; i<len ; i++){
str += dict[random(0,62)];
}
return result
}
Q4.写一个函数,生成一个随机 IP 地址,一个合法的 IP 地址为 0.0.0.0~255.255.255.255
function raddomIP(len) {
var arr = [ ]
for( var i =0; i<4 ; i++){
arr.push(random(0,256))
}
return arr.join( ' . ')
}
Q5.写一个函数,生成一个随机颜色字符串,合法的颜色为#000000~ #ffffff
function radomColor(){
var str ='0123456789abcdef';
var result ='#';
for ( var i =0; i<6; i++){
result+=str[Math.floor(Math.random()*16)];
}
return result;
}
Q6. 数组方法里push、pop、shift、unshift、join、split分别是什么作用?用 splice函数分别实现 push、pop、shift、unshift方法
push:在数组的最后添加一个元素;
pop:在数组的最后删除一个元素;
shift:将数组的开头删去一个元素;
unshirt:加入一个元素在头部;
join:将数组连接成字符串,参数是转换成字符串后的连接符;
split:把一个字符串分隔成数组,参数为转换成数组后的分隔符。
用splice函数实现push:
1.png
用splice函数实现pop:
2.png
用splice函数实现shift:
4.png
用splice函数实现unshift:
3.png
Q7. 写一个函数,操作数组,数组中的每一项变为原来的平方,在原数组上操作
function squareArr(arr){
for(var i =0; i<arr.lenght; i++){
arr[i] *= arr[i];
}
return arr
}
var arr = [2, 4, 6]
squareArr(arr)
console.log(arr) // [4, 16, 36]
Q8.写一个函数,操作数组,返回一个新数组,新数组中只包含正数,原数组不变
function filterPositive(arr){
var newArr =[ ];
for(var = i; i<arr.length;i++){
if(typeof arr [i] === 'number && arr[i]<0);
arr.push(arr[i]);
}
return arr
}
var arr = [3, -1, 2, '饥人谷', true]
var newArr = filterPositive(arr)
console.log(arr) //[3, 2]
Q9.写一个函数getChIntv,获取从当前时间到指定日期的间隔时间
function getChIntv(time){
var now = Date.now();
var a = Math.round((Date.parse(time) - now)/1000);
var second = a%60;
var minute = Math.floor(a/60)%60;
var hour = Math.floor(a/60/60)%24 - 8;
var day = Math.floor(a/60/60/24);
return '距离' + time + '还有' + day + '天' + hour + '小时' + minute + '分钟' + second + '秒';
}
var str = getChIntv("2017-02-08");
console.log(str);
0_1484393592280_upload-a4a8791e-aeaa-49b0-bc55-8c4a65663d92
Q10:把hh-mm-dd格式数字日期改成中文日期
方法一:操作字符串
function getChsDate(str){
var a = ['零','一','二','三','四','五','六','七','八','九','十','十一','十二','十三','十四','十五','十六','十七','十八','十九','二十','二十一','二十二','二十三','二十四','二十五','二十六','二十七','二十八','二十九','三十','三十一']; var arr = str.split('-');
var year = '';
for(var i = 0; i < arr[0].length; i++){
year = year + a[arr[0][i]];
}
var month = a[parseInt(arr[1])];
var day = a[parseInt(arr[2])];
var time = year + '年' + month + '月' + day + '日'
return time;
}
var str = getChsDate('2915-01-31');
console.log(str);
0_1484395172930_upload-17304825-08e5-4ea5-98b4-61d73b6df84b方法二:时间对象
function getChsDate(str){
var a = ['零','一','二','三','四','五','六','七','八','九','十','十一','十二','十三','十四','十五','十六','十七','十八','十九','二十','二十一','二十二','二十三','二十四','二十五','二十六','二十七','二十八','二十九','三十','三十一'];
var time = '';
var n = new Date(str);
var year = n.getFullYear() + '';
var month = n.getMonth() + 1 + '';
var day = n.getDate() + '';
for(var i = 0; i < year.length; i++){
time += a[year[i]];
}
return time + '年' + a[month] + '月' + a[day] + '日';
}
var str = getChsDate('2915-01-31');
console.log(str);
0_1484395612818_upload-cf6d3ddf-915f-4060-bddd-9586b2f52a17Q3:写一个函数,参数为时间对象毫秒数的字符串格式,返回值为字符串。假设参数为时间对象毫秒数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 t = Date.now();
var c = (t - time)/1000;
switch(true){
case c < 60:
return '刚刚';
case c >= 60 && c < 60*60:
return Math.floor(c/60) + '分钟前';
case c >= 60*60 && c < 60*60*24:
return Math.floor(c/60/60) + '小时前'
case c >= 60*60*24 && c < 60*60*24*30:
return Math.floor(c/60/60/24) + '天前';
case c >= 60*60*24*30 && c < 60*60*24*30*12:
return Math.floor(c/60/60/24/30) + '月前';
default:
return Math.floor(c/60/60/24/30/12) + '年前';
}
}
var str = friendlyDate( '1484286699422' ) // 1分钟前
var str2 = friendlyDate('1483941245793') //4天前
0_1484397251513_upload-7ee07290-9ff5-4165-ba31-316880e7cb89
网友评论