1、写一个函数,返回从min到max之间的 随机整数,包括min不包括max
function getRandom(min,max){
if(typeof min=="number"&& typeof max=="number"){
return min+Math.floor(Math.random()*(max-min));
}else{
alert("error");
}
}
console.log(getRandom(1,12)) // 1~11
2、写一个函数,返回从min都max之间的 随机整数,包括min包括max
function getRandom(min,max){
if(typeof min=="number"&& typeof max=="number"){
return min+Math.floor(Math.random()*(max-min+1));
}else{
alert("error");
}
}
console.log(getRandom(1,12)) // 1~12
3、写一个函数,生成一个长度为 n 的随机字符串,字符串字符的取值范围包括0到9,a到 z,A到Z。
function getRandStr(len){
var dico = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
var str ="";
for(var i=0;i<len;i++){
var ran = Math.floor(Math.random()*dico.length);
str+=dico[ran];
}
return str;
}
var str = getRandStr(10);
console.log(str) // 0a3iJiRZap
4、写一个函数,生成一个随机 IP 地址,一个合法的 IP 地址为 0.0.0.0~255.255.255.255
function getRandIP(){
var str="";
for(var i=0;i<4;i++){
str += Math.floor(Math.random()*(256))+".";
}
str = str.split("");
str.pop();
str = str.join("");
return str
}
var ip = getRandIP()
console.log(ip) // 10.234.121.45
5、写一个函数,生成一个随机颜色字符串,合法的颜色为#000000~ #ffffff
function getRandColor(){
var dico = "0123456789abcdef"
var str ="#";
for(var i=0;i<6;i++){
var ran = Math.floor(Math.random()*16);
str+=dico[ran];
}
return str;
}
var color = getRandColor()
console.log(color) // #3e2f1b
数组任务
1、数组方法里push、pop、shift、unshift、join、splice分别是什么作用?用 splice函数分别实现push、pop、shift、unshift方法
push:向数组中的尾部增加一个元素
pop:从数组中的尾部删除一个元素
shift:向数组中的头部删除一个元素
unshift:向数组中的头部增加一个元素
join:作用是把数组元素(对象调用其toString()方法)使用参数作为连接符连接成一字符串,不会修改原数组内容
splice:用于一次性解决数组添加、删除(这两种方法一结合就可以达到替换效果),方法有三个参数
1.开始索引
2.删除元素的数目
3.插入的新元素,可以写多个
function setArr(){
var arr =[11,22,33];
this.getArr = function(){
return arr ;
}
this.push = function(item){
arr.splice(arr.length,0,item);
return arr ;
}
this.pop = function(){
arr.splice(arr.length-1,1);
return arr ;
}
this.unshift = function(item){
arr.splice(0,0,item);
return arr ;
}
this.shift = function(){
arr.splice(0,1);
return arr ;
}
}
var pp = new setArr;
console.log(pp.push("push")) // [11,22,33,"push"]
console.log(pp.unshift("unshift")) // ["unshift",11,22,33,"push"]
console.log(pp.shift()) // [11,22,33,"push"]
console.log(pp.pop()) // [11,22,33]
2、写一个函数,操作数组,数组中的每一项变为原来的平方,在原数组上操作
function squareArr(arr){
if(!Array.isArray(arr)){
return ;
}else{
arr.forEach(function(item,index,arr){
arr[index] = Math.pow(item,2);
})
}
}
var arr = [2, 4, 6]
squareArr(arr)
console.log(arr) // [4, 16, 36]
3、写一个函数,操作数组,返回一个新数组,新数组中只包含正数,原数组不变
function filterPositive(arr){
if(!Array.isArray(arr)){
return ;
}else{
var newArr = arr.filter(function(item){
return item>0&&typeof item=="number";
})
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、 写一个函数getChIntv,获取从当前时间到指定日期的间隔时间
var str = getChIntv("2017-10-01");
function getChIntv(time){
var tagTime = new Date(time).getTime() - 8*60*60*1000;
var nowTime = Date.now();
var days = Math.floor((tagTime - nowTime)/(1000*60*60*24));
var hours = Math.floor(((tagTime - nowTime)%(1000*60*60*24))/(1000*60*60));
var minutes = Math.floor(((tagTime - nowTime)%(1000*60*60))/(1000*60));
var seconds = Math.floor(((tagTime - nowTime)%(1000*60))/(1000));
var str = "距国庆还有 "+days+" 天 "+hours+" 小时 "+minutes+" 分 "+seconds+" 秒 ";
return str;
}
console.log(str); // 距国庆还有 121 天 22 小时 40 分 17 秒
2、把hh-mm-dd格式数字日期改成中文日期
var str = getChsDate('2015-01-08');
function getChsDate(time){
var dico = {
"0":"零","1":"一","2":"二","3":"三","4":"四","5":"五","6":"六","7":"七",
"8":"八","9":"九","10":"十","11":"十一","12":"十二","13":"十三","14":"十四",
"15":"十五","16":"十六","17":"十七","18":"十八","19":"十九","20":"二十","21":"二十一",
"22":"二十二","23":"二十三","24":"二十四","25":"二十五","26":"二十六","27":"二十七","28":"二十八",
"29":"二十九","30":"三十","31":"三十一"
};
var arr = time.split("-");
var str = "";
for(var i=0;i<4;i++){
str+=dico[arr[0][i]];
}
str+="年"+dico[arr[1]*1]+"月"+dico[arr[2]*1]+"日";
return str;
}
console.log(str); // 二零一五年一月八日
3、写一个函数,参数为时间对象毫秒数的字符串格式,返回值为字符串。假设参数为时间对象毫秒数t,根据t的时间分别返回如下字符串:
function friendlyDate(time){
var nowTime = Date.now();
var goTime = nowTime - time*1;
if(goTime<1000*60){
console.log("刚刚");
}else if(goTime<1000*60*60){
console.log(Math.floor(goTime/(1000*60))+"分钟前");
}else if(goTime<1000*60*60*24){
console.log(Math.floor(goTime/(1000*60*60))+"小时前");
}else if(goTime<1000*60*60*24*30){
console.log(Math.floor(goTime/(1000*60*60*24))+"天前");
}else if(goTime<1000*60*60*24*365){
console.log(Math.floor(goTime/(1000*60*60*24*30))+"个月前");
}else{
console.log(Math.floor(goTime/(1000*60*60*24*360))+"年前");
}
}
var str = friendlyDate( '1484286699422' ) // 4个月前
var str2 = friendlyDate('1493941245793') //27天前