1. 程式人生 > >js--日期和Math、陣列和物件API

js--日期和Math、陣列和物件API

一、日期

Date.now()   //獲取當前時間毫秒數,從1970年到現在的毫秒數
var dt =new Date()
dt.getTime()      //獲取毫秒數
dt.getFullYear()  //年
dt.getMonth()     //月(0-11)
dt.getDate()      //日(0-31)
dt.getHours()     //小時(0-23)
dt.getMinutes()   //分鐘(0-59)

二、Math

獲取隨機數:Math.random()。作用是:清除快取。

三、陣列API

  • forEach遍歷所有元素
var arr=[
1,2,3] arr.forEach(function(item,index){ console.log(index,item) }) //輸出結果 //0 1 //1 2 //2 3
  • every判斷所有元素是否都符合條件
var arr=[1,2,3]
var result=arr.every(function(item,index){
       if(item<4){return true}
})
console.log(result)    //true
  • some判斷是否至少有一個元素符合條件
var arr=[1,2,3]
var result=arr.
every(function(item,index){ if(item<2){return true} }) console.log(result) //true
  • sort排序
var arr=[1,4,3,2,5]
var arr2=arr.sort(function(a,b){
      return a-b
})
console.log(arr2) //1,2,3,4,5
  • map對元素重新組裝,生成新陣列
var arr=[1,2,3,4]
var arr2=arr.map(function(item,index){
     return
'<b>'+item+'</b>' }) console.log(arr2) //[ '<b>1</b>', '<b>2</b>', '<b>3</b>', '<b>4</b>' ]
  • filter過濾符合條件的元素
var arr = [1,2,3]
var arr2 = arr.filter(function(item, index) {
    if(item >= 2){
        return true
    }
})
console.log(arr2) //[ 2, 3 ]

四、物件API

  • for(key in obj)
var obj = {
   x:100,
   y:200,
   z:300
}
var key;  //key取obj的屬性名
for(key in obj) {
   if(obj.hasOwnProperty(key)) {   //判斷key是obj的原生屬性,而不是從原型中拿過來的
       console.log(key, obj[key])
   }
}

for (key of in obj)是獲取物件的屬性值
obj.hasOwnProperty(key)-------obj原生屬性key
五、題目解答

  • 獲取2017-06-10格式的日期
function formatDate(dt) {
   if(!dt){
       dt=new Date()
   }
   var year=dt.getFullYear()
   var month=dt.getMonth()+1
   var day=dt.getDate()
   if(month<10){
       month='0'+month
   }
   if(day<10){
       day='0'+day
   }
   return year+'-'+month+'-'+day
}
 var dt=new Date()
 var formatDate=formatDate(dt)
 console.log(formatDate)
   
  • 獲取隨機數,要求是長度一致的字串格式
var random = Math.random()
var random = random + '0000000000'
var random = random.slice(0,10)
console.log(random)

  • 寫一個遍歷物件和陣列的通用forEach函式
function forEach(obj, fn) {
    var key
    if(obj instanceof Array){
        obj.forEach(function(item, index){
            fn(index, item)
        })
    } else {
        for(key in obj) {
            if(obj.hasOwnProperty(key)){
                fn(key, obj[key])
            }
        }
    }
}
var arr = [1,2,3]
forEach(arr, function(index, item) {
    console.log(index, item)
})
var obj = {x:100, y:200}
forEach(obj, function(key, value) {
    console.log(key, value)
})