Math陣列Date

weixin_33860722發表於2017-06-20

1、寫一個函式,返回從min到max之間的 隨機整數,包括min不包括max

function minMax(min,max){
  return Math.floor(Math.random()*(max-min)+min)
}
var a=minMax(50,100)
console.log(a)

2.寫一個函式,返回從min都max之間的 隨機整數,包括min包括max

function minMax(min,max){
  return Math.floor(Math.random()*(max-min+1)+min)
}
var a=minMax(20,30)
console.log(a)

3.寫一個函式,生成一個長度為 n 的隨機字串,字串字元的取值範圍包括0到9,a到 z,A到Z。

var dict=[0,1,2,3,4,5,6,7,8,9,'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z']
function rd(n){
  var arr=[]
  arr.length=n
  for(i=0;i<arr.length;i++){
    arr[i]=dict[Math.floor(Math.random()*dict.length)]
  }
  return arr.join('')
}
var str1=rd(29)
console.log(str1)

4 、寫一個函式,生成一個隨機 IP 地址,一個合法的 IP 地址為 0.0.0.0~255.255.255.255

function rdIp(){
  arr=new Array(4)
  for(var i=0;i<arr.length;i++){
    arr[i]=Math.floor(Math.random()*256)
  }
  return arr.join('.')
}
var a=rdIp()
console.log(a)

5、寫一個函式,生成一個隨機顏色字串,合法的顏色為#000000~ #ffffff

function rdColor(){
  var dict=['0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f'],color
  arr=new Array(6)
  for(var i=0;i<arr.length;i++){
    arr[i]=dict[Math.floor(Math.random()*dict.length)]
  }
  return color='#'+arr.join('')
}
console.log(rdColor())

1.陣列方法裡push、pop、shift、unshift、join、splice分別是什麼作用?用 splice函式分別實現push、pop、shift、unshift方法。

  • push
    往陣列最後面增添一個元素,會改變原陣列 arr.push(要增加的元素);//返回增加的值

  • pop
    刪除陣列最後面的一個元素,改變原陣列,arr.pop();//返回刪除的值

  • shift
    刪除陣列最前面的一個元素,改變陣列,arr.shift();//返回刪除的值

  • unshift
    往陣列最前面增添一個元素,改變原陣列,arr.unshift(要增加的元素);//返回增加的值

  • join
    把陣列中所有元素放入一個字串,並且,可以指定分割符。
    arr.join('-')//返回字串

  • splice
    splice 中文:拼接,結合。 在js中可以運算元組,增加/刪除。
    用法:splice(index,howmany,item1,item2...)//返回刪除的新陣列
    其中index,起始位置,支援負數,負數就是倒序(負數時,第二個引數沒用,只刪除一次),(必選引數)
    howmany,刪除多少次。(必選引數)
    items ,要增加的專案。(可選),改變原陣列。

    • 容易和slice,split搞混(因為拼寫有點像啊)
    • slice 切片,字串和陣列都可以用,a.slice(x,y)代表切片起始位置x和終止位置,支援負數。返回的是切片的字串或者陣列。
    • split,將字串轉換為陣列,a.split(x,y) x選擇字串或正規表示式來作為分割線,並且會去掉他們,y,可選。該引數可指定返回的陣列的最大長度。如果設定了該引數,返回的子串不會多於這個引數指定的陣列。如果沒有設定該引數,整個字串都會被分割,不考慮它的長度。
  • 用splice實現push,pop,shift,unshift

var a=[1,2,3,4,5],b
a.push(6)
a.splice(a.length,0,4)
console.log(a)//和push一樣
a.pop()
a.splice(-1,1)
console.log(a)//和pop一樣
a.shift()
a.splice(0,1)
console.log(a)
a.unshift(1)
a.splice(0,0,1)
console.log(a)

2、寫一個函式,運算元組,陣列中的每一項變為原來的平方,在原陣列上操作

var a=[1,2,3,4],b
b=a.map(function(x){return x*x})
console.log(b)
var a=[1,2,3,4]
function aa(a){
  for(var i=0;i<a.length;i++){
    a[i]=a[i]*a[i]
  }
  return a
}
console.log(aa(a))

3.寫一個函式,運算元組,返回一個新陣列,新陣列中只包含正數,原陣列不變

var a=[1,2,3,4,-1,0,2,5],b
b=a.filter(function(x){return x>0})
console.log(b)
var a=[1,2,3,4,-1,0,2,5]
function positiveNumber(arr){
  var b=[],j=0
  for(var i in arr){
    if(arr[i]>0){
      b[j]=arr[i]
      j++
    }
  }
  return b
}
console.log(positiveNumber(a))

1、 寫一個函式getChIntv,獲取從當前時間到指定日期的間隔時間

function getChlntv(x){
   var a=Date.parse(x)-Date.now()
   var b=1000*60*60*24
   var c=1000*60*60
   var d=1000*60
   var e=1000
   if(a>=0){
     console.log('距離'+x+'還有'+Math.floor(a/b)+'天'+Math.floor(a%b/c)+'小時'+Math.floor(a%b%c/d)+'分'+Math.floor(a%b%c%d%e)+'秒')
   } else{
    console.log('從'+x+'到如今,我們已經走過'+Math.floor((-a)/b)+'天'+Math.floor((-a)%b/c)+'小時'+Math.floor((-a)%b%c/d)+'分'+Math.floor((-a)%b%c%d/e)+'秒')
  }
}

2.把hh-mm-dd格式數字日期改成中文日期

var  str = getChsDate('2015-10-08');
  function getChsDate(str){
    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':'三十一'}
    var arr=str.split('-')
    console.log(arr)
    var strYear='',strMonth,strDay,Date
    for(var i=0;i<arr[0].length;i++){
      strYear+=dict[arr[0][i]]
    }
    console.log(strYear)
    if(arr[1][0]==='0'){
      strMonth=dict[arr[1][1]]
    }else{
      strMonth=dict[arr[1]]
    }
    console.log(strMonth+'月')
    if(arr[2][0]==='0'){
       strDay=dict[arr[2][1]]
    }else{
       strDay=dict[arr[2]]
    }
    console.log(strDay)
    return strYear+'年'+strMonth+'月'+strDay+'日'
  }
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 abc(time){
  var a=Date.now()-time
  console.log(a)
  switch(true){
      case a<1000:
      return '剛剛'
      break;
    case 1000<=a<1000*60*60:
      return '3分鐘前';
      break;
    case 1000*60*60<=a<1000*60*60*24:
      return '8小時前';
      break;
    case 1000*60*60*24<=a<1000*60*60*24*30:
      return '3天前'
      break;
    case 1000*60*60*24*30<=a<1000*60*60*24*30*12:
      return '8個月前';
      break;
    case a>=1000*60*60*24*30*12:
      return '8年前';
  }
}

相關文章