美文网首页
进阶6 Math数组Date

进阶6 Math数组Date

作者: 512a36a11b8c | 来源:发表于2017-11-16 18:06 被阅读37次

math任务

1. 写一个函数,返回从min到max之间的 随机整数,包括min不包括max
function getRandomArbitrary(min, max) {
  return Math.floor(Math.random() * (max - min)) + min;
}
console.log(getRandomArbitrary(1,5))//返回1-4的随机数
2. 写一个函数,返回从min都max之间的 随机整数,包括min包括max
function getRandomArbitrary(min, max) {
  return Math.floor(Math.random() * (max - min + 1)) + min;
}
console.log(getRandomArbitrary(1,5))//返回1-5的随机数
3. 写一个函数,生成一个长度为 n 的随机字符串,字符串字符的取值范围包括0到9,a到 z,A到Z。
function getRandStr(len){
  var _string = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
  var tempString = ''
  for (var i = len - 1; i >= 0; i--) {
    var index = Math.floor(Math.random()*_string.length)
    tempString += _string[index]
  }
  return tempString
}
var str = getRandStr(10);
4. 写一个函数,生成一个随机 IP 地址,一个合法的 IP 地址为 0.0.0.0~255.255.255.255
function genIp(){
    var arr = new Array(4);
    for(var i=0;i<4;i++){
        var num=Math.floor(Math.random()*256);
        arr[i]=num;
    }return arr.join('.');
}
var demo = genIp();
console.log(demo);
5. 写一个函数,生成一个随机颜色字符串,合法的颜色为#000000~ #ffffff
var arr = [3,4,6];
function squareArr(arr){
    var result;
    for(var i=0;i<arr.length;i++){
        result = arr[i]*arr[i];
        arr.splice(i,1,result);
    }return arr;
}
var demo = squareArr(arr);
//方法2,更优雅
var _arr = [4,5,6]
function squareArr2(arr){
    return arr.map(function(x){
        return x*x
    })
}
console.log(squareArr2(_arr))

数组任务

1. 数组方法里push、pop、shift、unshift、join、splice分别是什么作用?用 splice函数分别实现push、pop、shift、unshift方法
var arr = ["a","b","c"];
//push方法将一个或多个元素添加到数组的末尾,并返回数组的新长度
var value1 = arr.push("d")                   arr = ["a","b","c","d"]
var value2 = arr.push("e","f")               arr = ["a","b","c","d","e","f"]
console.log(value1)  //  4
console.log(value2)  //  6

//pop从数组中删除最后一个元素,并返回该元素的值。此方法更改数组的长度
var value3 = arr.pop()                         
console.log(value3)  //  f    arr = ["a","b","c","d","e"]

//shift方法从数组中删除第一个元素,并返回该元素的值。此方法更改数组的长度
var value4 = arr.shift()
console.log(value4)  // a    arr = ["b","c","d","e"]

//unshift方法将一个或多个元素添加到数组的开头,并返回新数组的长度
var value5 = arr.unshift("g","h")              arr = ["g","h","b","c","d","e"]
console.log(value5)  //   6

push与unshift对应 ,pop与shift对应(ps:竟然不是shift与unshift对应。。。)

//join方法方法将数组(或一个[类数组对象])的所有元素连接到一个字符串中  此方法并不改变原数组
var str = arr.join()                             无参数则默认为","
console.log(str)         //   g,h,b,c,d,e
var str2 = arr.join("")  
console.log(str2)   //  ghbcde
splice法通过删除现有元素和/或添加新元素来更改一个数组的内容,返回由被删除的元素组成的一个数组
,如果只删除了一个元素,则返回只包含一个元素的数组。如果没有删除元素,则返回空数组。
语法  arr.splice(start,deletement,item1,item2)
start:开始的位置  (这个开始的位置有点特别,如果不删只添加的话,开始的位置就是添加的第一个成员
      在改变过的数组中的位置)
deletement:要删除的个数
item1,item2 要添加的成员

var arr = ["a","b","c"];
var arr2 = arr.splice(1,2)
console.log(arr2)   //  ["b","c"]

# splice实现arr.push("d","e")
arr.splice(arr.length,0,"d","e") 
console.log(arr)    // ["a","d","e"]

# splice实现 arr.pop()
arr.splice(arr.length-1,1)
console.log(arr)   //   ["a","d"]

#splice实现arr.shift()
arr.splice(0,1)
console.log(arr)  //  ["d"]

#splice实现arr.unshift("a","b","c")
arr.splice(0,0,"a","b","c")
console.log(arr)   //  ["a","b","c","d"]
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)   //[4, 16, 36]
3. 写一个函数,操作数组,返回一个新数组,新数组中只包含正数,原数组不变
function filterPositive(arr){
    return arr.filter(function(item) {
        return item > 0 && typeof item === "number"
    })
}
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 = getIntv("2018-02-08");
function getIntv(time){
    var end = new Date(time);
    var now = new Date();
    var timer = end-now;
    var day = Math.floor(timer/(1000*60*60*24));
    var timer1 = timer%(1000*60*60*24)
    var hour = Math.floor(timer1/(1000*60*60));
    var timer2 = timer1%(1000*60*60);
    var min = Math.floor(timer2/(1000*60));
    var timer3 = timer2%(1000*60);
    var sec = Math.floor(timer3/1000);
    return ("距"+time+"还有"+day+"天"+hour+"小时"+min+"分钟"+sec+"秒")
  }
console.log(str);
2. 把hh-mm-dd格式数字日期改成中文日期
function getChsDate(date){
    var newDate =date.split("-"),
        year = newDate[0],
        month = newDate[1],
        day = newDate[2];
    var dict ={"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": "三十一"};
return dict[year[0]]+dict[year[1]]+dict[year[2]]+dict[year[3]] + '年' + dict[Number(month)] +'月' + dict[Number(day)] + '日';
};
getChsDate('2015-01-08');//"二零一五年一月八日"
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 t = new Date().getTime();
    var c = (t-time)/1000;
    switch(true){
        case c < 60:
        console.log('刚刚');
        break;
        case c >=60 && c<60*60:
        return Math.floor(c/60)+'分钟前';
        break;
        case c>=3600 && c<3600*24:
        return Math.floor(c/3600)+"小时前";
        break;
        case c>=3600*24 && c<3600*24*30:
        return Math.floor(c/3600/24)+"天前";
        break;
        case c>=3600*24*30 && c<3600*24*30*12:
        return Math.floor(c/3600/24/30)+"月前";
        break;
        default:
        return Math.floor(c/3600/24/30/12)+"年前";
        break;
    }
}
var str = friendlyDate(Date.now()-1000*60);
console.log(str);
var str2 = friendlyDate('1483941245793');
console.log(str2);

相关文章

  • 进阶6 Math数组Date

    math任务 1. 写一个函数,返回从min到max之间的 随机整数,包括min不包括max 2. 写一个函数,返...

  • 进阶6 Math·数组·Date

    Math 1. 写一个函数,返回从min到max之间的 随机整数,包括min不包括max 2. 写一个函数,返回从...

  • 进阶6:Math数组Date

    Math任务 1.写一个函数,返回从min到max之间的 随机整数,包括min不包括max 2.写一个函数,返回从...

  • Math数组Date(进阶6)

    Math任务 1、写一个函数,返回从min到max之间的随机整数,包括min不包括max 2、写一个函数,返回从m...

  • 进阶任务6:Math数组Date

    1、写一个函数,返回从min到max之间的 随机整数,包括min不包括max 2、写一个函数,返回从min都max...

  • Math,数组,Date(进阶6作业)

    Math 1、写一个函数,返回从min到max之间的 随机整数,包括min不包括max 2、写一个函数,返回从mi...

  • 进阶任务6-Math数组Date

    Math任务 1、写一个函数,返回从min到max之间的 随机整数,包括min不包括max 2、写一个函数,返回从...

  • 进阶任务6-Math数组Date

    Math任务 1、写一个函数,返回从min到max之间的 随机整数,包括min不包括max 2、写一个函数,返回从...

  • 进阶六 Math 数组 Date

    Math任务 1.写一个函数,返回从min到max之间的 随机整数,包括min不包括max 2. 写一个函数,返回...

  • 进阶任务6(主线任务):Math数组Date

    Math任务 1、写一个函数,返回从min到max之间的 随机整数,包括min不包括max 2、写一个函数,返回从...

网友评论

      本文标题:进阶6 Math数组Date

      本文链接:https://www.haomeiwen.com/subject/vwxgmxtx.html