math任务
1.写一个函数,获取从min到max之间的随机整数,包括min不包括max
  function getRandomInt(min, max) {
    return Math.floor(Math.random() * (max - min)) + min;
  }
2.写一个函数,获取从min都max之间的随机整数,包括min包括max
  function getRandomInt(min, max) {
    return Math.floor(Math.random() * (max - min + 1)) + min;
  }
3.写一个函数,生成一个长度为 n 的随机字符串,字符串字符的取值范围包括0到9,a到 z,A到Z
function getRandomArr(len,min,max){
    var arr = new Array();
    for(var i=1;i<=len;i++){
      arr[i-1]=Math.floor(Math.random() * (max - min + 1)) + min;
    }
    return arr;
  }
4.写一个函数,生成一个随机 IP 地址,一个合法的 IP 地址为 0.0.0.0~255.255.255.255
function getRandIP(){
    var arr = new Array(4)
    for (var i=0;i<4;i++){
        arr[i]=Math.floor(Math.random()*256)
    }
    return arr.join('.')
}
var ip = getRandIP()
console.log(ip)
5.写一个函数,生成一个随机颜色字符串,合法的颜色为#000000~ #ffffff
function getRandColor(){
    var str="0123456789abcdef"
    var result='#'
    for(var i=0;i<6;i++){
        result += str[Math.floor(Math.random()*str.length)]
    }
    return result
}
var color = getRandColor()
console.log(color)
数组任务
1.数组方法里push、pop、shift、unshift、join、split分别是什么作用?用 splice函数分别实现push、pop、shift、unshift方法
- push:在数组最后加入一个元素
 - pop:删除数组最后一个元素
 - shift:删去数组第一个元素
 - unshift:在数组开始加入一个元素
 - join:将数组中多个字符串按一定规律连接为一个字符串
 - split:将一个字符串用某个分隔符断开,可以和join看作互为逆操作
 
  function pop(arr){
    return arr.splice(arr.length-1,1)[0];
  }
  function push(arr,val){
    arr.splice(arr.length,0,val);
    return arr.length;
  }
  function shift(arr){
    return arr.splice(0,1)[0];
  }
  function unshift(arr,val){
    arr.splice(0,0,val);
    return arr.length;
  }
2.写一个函数,操作数组,数组中的每一项变为原来的平方,在原数组上操作
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)
3.写一个函数,操作数组,返回一个新数组,新数组中只包含正数,原数组不变
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,'jirengu',true]
var newArr=filterPositive(arr)
console.log(arr)
console.log(newArr)
Date任务
- 写一个函数getChIntv,获取从当前时间到指定日期的间隔时间
 
function geChtIntv(str){
  var ms1=Date.parse(str);
  var now=new Date();
  var ms2=now.getTime();
  var abs=Math.abs(ms2-ms1);
  abs=Math.floor(abs/1000);
  var day=Math.floor(abs/86400);
  abs=abs%86400;
  var hour=Math.floor(abs/3600);
  abs=abs%3600;
  var min=Math.floor(abs/60);
  abs=abs%60;
  var sec=abs;
  var d="距离"+str+" "+day+"天"+hour+"小时"+min+"分钟"+sec+"秒";
  return d;
}
var str = getChIntv("2017-02-08");
console.log(str);
2.把hh-mm-dd格式数字日期改成中文日期
function getChsDate(str){
  var chs=["零","一","二","三","四","五","六","七","八","九",
  "十","十一","十二","十三","十四","十五","十六","十七","十八",
  "十九","二十","二十一","二十二","二十三","二十四","二十五",
  "二十六","二十七","二十八","二十九","三十","三十一"]
  var date=new Date(str)
  var year=new String(date.getFullYear())
  var month=new String(date.getMonth()+1)
  var day=new String(date.getDate())
  var chsYear=''
  var chsMonth
  var chsDay
  for(var i=0;i<year.length;i++){
    chsYear+=chs[year[i]]
  }
  chsMonth=chs[month]
  chsDay=chs[day]
  var chsDate=chsYear+"年"+chsMonth+"月"+chsDay+"日"
  return chsDate
}
var str = getChsDate('2015-01-08')
console.log(str)
3.写一个函数,参数为时间对象毫秒数的字符串格式,返回值为字符串。假设参数为时间对象毫秒数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 now = new Date()
    var ms = now.getTime()
    var abs = (ms-time)/1000
    if(abs<60){
        return '刚刚'
    }else if(abs<3600){
        return '3分钟前'
    }else if(abs<86400){
        return '8小时前'
    }else if(abs<2592000){
        return '3天前'
    }else if(abs<31104000){
        return '2个月前'
    }else{
        return '8年前'
    }
}
var str = friendlyDate('1484286699422')
var str2 = friendlyDate('1483941245793')
var str3 = friendlyDate('1489741821034')
console.log(str)
console.log(str2)
console.log(str3)









网友评论