JS基礎(chǔ)-Math數(shù)組Date

一.Math

1低散、寫(xiě)一個(gè)函數(shù),返回從min到max之間的 隨機(jī)整數(shù)缎浇,包括min不包括max
    //不包含最大數(shù)
    function getNum(min,max){
      //包含最小值扎拣,隨機(jī)最小值與最大值之間的整數(shù)且不包含最大值
      console.log(min+Math.floor(Math.random()*(max-min)))
    }
      getNum(10,15)
2、寫(xiě)一個(gè)函數(shù)素跺,返回從min都max之間的 隨機(jī)整數(shù)二蓝,包括min包括max
   //也包含最大數(shù)
    function getNum2(min,max){
    //包含最小值,隨機(jī)最小值與最大值之間的整數(shù)且包含最大值
     console.log(min+Math.floor(Math.random()*(max+1-min)))
}
    getNum2(10,15)
3指厌、寫(xiě)一個(gè)函數(shù)刊愚,生成一個(gè)長(zhǎng)度為 n 的隨機(jī)字符串,字符串字符的取值范圍包括0到9踩验,a到 z鸥诽,A到Z商玫。
  function getRandStr(len){
    //補(bǔ)全函數(shù)
     var str1=''
     var str = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
     for(var i=0;i<len;i++){
       var ss=parseInt(Math.random()*str.length);
           str1 += str[ss];
     }
     return str1
  }
  var str = getRandStr(10); // 例:0a3iJiRZap
  console.log(str);  
4、寫(xiě)一個(gè)函數(shù)衙传,生成一個(gè)隨機(jī) IP 地址决帖,一個(gè)合法的 IP 地址為 0.0.0.0~255.255.255.255
  function getRandIP(){
    //補(bǔ)全
    var ip=''
    for (var i=0; i<4; i++){
      var str=Math.floor(Math.random()*256);
      ip += str;
      // 3個(gè)點(diǎn)是4個(gè)數(shù)
      if( i<3 ){
         ip += ".";
      }
   }
   return ip;
 }
var ip = getRandIP()
console.log(ip) // 例:10.234.121.45
5、寫(xiě)一個(gè)函數(shù)蓖捶,生成一個(gè)隨機(jī)顏色字符串,合法的顏色為#000000~ #ffffff
  function getRandColor(){
    var str = "0123456789abcdef";
    var strlen = str.length;
    var colorstr = "#";
    for(var i = 0; i < 6; i++){
      var index = Math.floor(Math.random()*strlen);
      colorstr += str[strlen];
    }
    return colorstr
  }
  var color = getRandColor()
  console.log(color)   // 例:#3e2f1b

二.數(shù)組

1扁远、數(shù)組方法里push俊鱼、pop、shift畅买、unshift并闲、join、splice分別是什么作用谷羞?用 splice函數(shù)分別實(shí)現(xiàn)push帝火、pop、shift湃缎、unshift方法
  • push()犀填、pop()和unshift()、shift()這兩組同為對(duì)數(shù)組的操作嗓违,并且會(huì)改變數(shù)組的本身的長(zhǎng)度及內(nèi)容九巡。
    不同的是 push()、pop() 是從數(shù)組的尾部進(jìn)行增刪蹂季,unshift()冕广、shift() 是從數(shù)組的頭部進(jìn)行增刪。

  • splice() 方法向/從數(shù)組中添加/刪除項(xiàng)目偿洁,然后返回被刪除的項(xiàng)目撒汉。該方法會(huì)改變?cè)紨?shù)組。
    join() 方法用于把數(shù)組中的所有元素放入一個(gè)字符串涕滋。元素是通過(guò)指定的分隔符進(jìn)行分隔的睬辐。

    //splice函數(shù)分別實(shí)現(xiàn)push、pop何吝、shift溉委、unshift方法
    //例子:
      var arr = [1,2,3,4,5]
      //push  
      arr.splice(arr.length,0,6); //位置,要?jiǎng)h除元素的個(gè)數(shù)爱榕,要添加到數(shù)組的元素
      console.log(arr);//[1,2,3,4,5,6]
    
      console.log(arr.length)
      //pop
      arr.splice(arr.length-1,1)
      console.log(arr);//[1,2,3,4,5]
    
      //shift
      arr.splice(0,1);
      console.log(arr);//[2,3,4,5]
    
      //unshift
      arr.splice(0,0,1);
      console.log(arr);//[1,2,3,4,5]
    
2瓣喊、寫(xiě)一個(gè)函數(shù),操作數(shù)組黔酥,數(shù)組中的每一項(xiàng)變?yōu)樵瓉?lái)的平方藻三,在原數(shù)組上操作
   function squareArr(arr){
     for(var i = 0; i < arr.length; i++ ){
      arr[i] *= arr[i]
     }
     return arr;
   }

   var arr = [2, 4, 6]
   squareArr(arr)
   console.log(arr) // [4, 16, 36]
3洪橘、寫(xiě)一個(gè)函數(shù),操作數(shù)組棵帽,返回一個(gè)新數(shù)組熄求,新數(shù)組中只包含正數(shù),原數(shù)組不變
   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,  '饑人谷', true]
  var newArr = filterPositive(arr)
  console.log(newArr) //[3, 2]

三.Date

1逗概、 寫(xiě)一個(gè)函數(shù)getChIntv弟晚,獲取從當(dāng)前時(shí)間到指定日期的間隔時(shí)間
   function getChIntv(s) {
     //時(shí)間=指定時(shí)間-當(dāng)前時(shí)間
     var time = Math.abs(Date.parse(s) - Date.now()); 
     //天數(shù)=時(shí)間/天的毫秒
     var days = parseInt(time/(1000*60*60*24));
     //幾小時(shí)=時(shí)間%天的毫秒/一小時(shí)毫秒
     var hours = parseInt((time%(1000*60*60*24))/(1000*60*60));  
     //幾分鐘=時(shí)間%天的毫秒/一小時(shí)毫秒/一分鐘毫秒
     var minutes = parseInt(((time%(1000*60*60*24))%(1000*60*60))/(1000*60)); 
    //幾秒=時(shí)間%天的毫秒/一小時(shí)毫秒/一分鐘毫秒/一秒毫秒
     var seconds = parseInt(((time%(1000*60*60*24))%(1000*60*60))%(1000*60)/1000); 
     return days + '天' + hours + '小時(shí)' + minutes + '分鐘' + seconds+ '秒'
   }
   var str = getChIntv('2017-7-01'); 
   console.log(str);  
2、把hh-mm-dd格式數(shù)字日期改成中文日期
  function getChsDate(s) {
    var arr = ['零','一','二','三','四','五','六','七','八','九','十','十一','十二','十三'
    , '十四','十五','十六','十七','十八','十九','二十','二十一','二十二','二十三','二十四',
     '二十五','二十六','二十七','二十八','二十九','三十','三十一']
    //字符串拆成數(shù)組 
    var time = s.split('-');
    // 輸出字符串就行
    var year = time[0];
    var month = time[1];
    var day = time[2];
    var newYear = arr[year[0]]+arr[year[1]]+arr[year[2]];
    var newMonth = arr[parseInt(month)];
    var newDay = arr[parseInt(day)];
    return newYear+"年"+newMonth+"月"+newDay+"日";
  }

  var str = getChsDate('2017-06-30');
  console.log(str);  // 二零一七年六月三十日
3逾苫、寫(xiě)一個(gè)函數(shù)卿城,參數(shù)為時(shí)間對(duì)象毫秒數(shù)的字符串格式,返回值為字符串铅搓。假設(shè)參數(shù)為時(shí)間對(duì)象毫秒數(shù)t瑟押,根據(jù)t的時(shí)間分別返回如下字符串:
  // 剛剛( t 距當(dāng)前時(shí)間不到1分鐘時(shí)間間隔)
  // 3分鐘前 (t距當(dāng)前時(shí)間大于等于1分鐘,小于1小時(shí))
  // 8小時(shí)前 (t 距離當(dāng)前時(shí)間大于等于1小時(shí)星掰,小于24小時(shí))
  // 3天前 (t 距離當(dāng)前時(shí)間大于等于24小時(shí)多望,小于30天)
  // 2個(gè)月前 (t 距離當(dāng)前時(shí)間大于等于30天小于12個(gè)月)
  // 8年前 (t 距離當(dāng)前時(shí)間大于等于12個(gè)月)

  // 代碼:
  function friendlyDate(time){
     var msec=new Date()
     // getTime()返回距 1970 年 1 月 1 日之間的毫秒數(shù)
     var nowTime=msec.getTime()
     var sec=(nowTime-time)/1000

     if(sec<60){
        return '剛剛'
     }else if(sec>=60&&sec<3600){
        return '三分鐘前'
     }else if(sec>=3600&&sec<8*3600){
        return '8小時(shí)前'
     }else if(sec>=24*3600&&sec<24*3600*30){
        return '3天前'
     }else if(sec>=24*3600*30&&sec<24*3600*30*12){
        return '2個(gè)月前'
     }else if(sec>=24*3600*30*12){
               return '8年前'     
    }
   }
   var str = friendlyDate( '1484286699422' ) 
   var str2 = friendlyDate('1483941245793') 
   console.log(str)  //2個(gè)月前
   console.log(str2) //2個(gè)月前

本文題文內(nèi)容來(lái)自于饑人谷,版權(quán)歸饑人谷_海瀚和饑人谷所有氢烘,轉(zhuǎn)載需說(shuō)明來(lái)源

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末怀偷,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子威始,更是在濱河造成了極大的恐慌枢纠,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,311評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件黎棠,死亡現(xiàn)場(chǎng)離奇詭異晋渺,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)脓斩,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,339評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門(mén)木西,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人随静,你說(shuō)我怎么就攤上這事八千。” “怎么了燎猛?”我有些...
    開(kāi)封第一講書(shū)人閱讀 152,671評(píng)論 0 342
  • 文/不壞的土叔 我叫張陵恋捆,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我重绷,道長(zhǎng)沸停,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 55,252評(píng)論 1 279
  • 正文 為了忘掉前任昭卓,我火速辦了婚禮愤钾,結(jié)果婚禮上瘟滨,老公的妹妹穿的比我還像新娘。我一直安慰自己能颁,他們只是感情好杂瘸,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,253評(píng)論 5 371
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著伙菊,像睡著了一般败玉。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上占业,一...
    開(kāi)封第一講書(shū)人閱讀 49,031評(píng)論 1 285
  • 那天绒怨,我揣著相機(jī)與錄音,去河邊找鬼谦疾。 笑死,一個(gè)胖子當(dāng)著我的面吹牛犬金,可吹牛的內(nèi)容都是我干的念恍。 我是一名探鬼主播,決...
    沈念sama閱讀 38,340評(píng)論 3 399
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼晚顷,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼峰伙!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起该默,我...
    開(kāi)封第一講書(shū)人閱讀 36,973評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤瞳氓,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后栓袖,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體匣摘,經(jīng)...
    沈念sama閱讀 43,466評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,937評(píng)論 2 323
  • 正文 我和宋清朗相戀三年裹刮,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了音榜。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,039評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡捧弃,死狀恐怖赠叼,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情违霞,我是刑警寧澤嘴办,帶...
    沈念sama閱讀 33,701評(píng)論 4 323
  • 正文 年R本政府宣布,位于F島的核電站买鸽,受9級(jí)特大地震影響涧郊,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜癞谒,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,254評(píng)論 3 307
  • 文/蒙蒙 一底燎、第九天 我趴在偏房一處隱蔽的房頂上張望刃榨。 院中可真熱鬧,春花似錦双仍、人聲如沸枢希。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,259評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)苞轿。三九已至,卻和暖如春逗物,著一層夾襖步出監(jiān)牢的瞬間搬卒,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,485評(píng)論 1 262
  • 我被黑心中介騙來(lái)泰國(guó)打工翎卓, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留契邀,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,497評(píng)論 2 354
  • 正文 我出身青樓失暴,卻偏偏與公主長(zhǎng)得像坯门,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子逗扒,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,786評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容

  • Date對(duì)象: Date對(duì)象是js提供的日期和時(shí)間接口;Date對(duì)象有幾個(gè)靜態(tài)方法(即直接通過(guò)date對(duì)象調(diào)用的方...
    草鞋弟閱讀 383評(píng)論 0 0
  • 寫(xiě)一個(gè)函數(shù),返回從min到max之間的 隨機(jī)整數(shù)黍檩,包括min不包括max 寫(xiě)一個(gè)函數(shù)叉袍,返回從min都max之間的 ...
    LeeoZz閱讀 301評(píng)論 0 0
  • Math任務(wù) 1、寫(xiě)一個(gè)函數(shù)建炫,返回從min到max之間的隨機(jī)整數(shù)畦韭,包括min不包括max
    湖衣閱讀 261評(píng)論 0 0
  • Math任務(wù) 1.寫(xiě)一個(gè)函數(shù)衍慎,返回從min到max之間的隨機(jī)整數(shù)转唉,包括min不包括max 。 function r...
    Rising_suns閱讀 126評(píng)論 0 0
  • .寫(xiě)一個(gè)函數(shù)稳捆,返回從min到max之間的 隨機(jī)整數(shù)赠法,包括min不包括max function randomness...
    邢烽朔閱讀 312評(píng)論 0 1