JavaScript-总结篇之常用日期,数组API

  • 获取2017-11-20格式的日期
  • 获取随机数,要求是长度一致的字符串格式
  • 写一个能遍历对象和数组的通用forEach函数

常用API

日期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)
dt.getSeconds()     //秒(0-59)

MathAPI

Math.random()    //获取随机数

数组API

forEach     //遍历所有元素
every       //判断所有元素是否都符合条件
some        //判断是否有至少一个元素符合条件
sort        //排序
map         //对元素重新组装,生成新数组
filter      //过滤符合条件的元素
//foreach
var arr = [1,2,3]
arr.forEach(function(item,index){
    //遍历数组的所有元素
    console.log(index,item)
})

//every
var arr = [1,2,3]
var result = arr.every(function(item,index){
    //判断所有的数组元素,都满足一个条件
    if(item < 4){
        return true
    }
})
console.log(result)

//some
var arr = [1,2,3]
var result = arr.some(function(item,index){
    //判断所有的数组元素,只要有一个满足即可
    if(item < 2){
        return true
    }
})
console.log(result)

//sort
var arr = [1,4,2,3,5]
var arr2 = arr.sort(function(a,b){
    //从小到大排序
    return a - b

    //从大到小排序
    return b - a
})
console.log(arr2)

//map
var arr = [1,2,3,4]
var arr2 = arr.map(function(item,index){
    //将元素重新组装,并返回
    return '' + item + ''
})
console.log(arr2)

//filter
var arr = [1,2,3,4]
var arr2 = arr.filter(function(item,index){
    //通过某一个条件过滤数组
    if(item >= 2){
        return true
    }
})
console.log(arr2)

对象API

var obj = {
    x:100,
    y:200,
    z:300
}

var key
for(key in obj){
    //注意这里的 hasOwnProperty,是否是key本身的而不是原型的
    if(obj.hasOwnProperty(key)){
        console.log(key,obj[key])
    }
}

三个Demo
获取2017-06-10格式的日期

function formatDate(d){
    if(!d){
        var d = new Date()
    }

    var year = d.getFullYear()
    var month = d.getMonth() + 1
    var date = d.getDate()

    if(month < 10){
        month = '0' + month
    }
    if(date < 10){
        date = '0' + date
    }

    return year + '-' + month + '-' + date
}
var d = new Date()
console.log(formatDate(d))

获取随机数,要求长度一致的字符串格式

var random = Math.random()
random = random + '0000000000'  //加10个0
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){
            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(index,item){
    console.log(index,item)
})

你可能感兴趣的:(JavaScript-总结篇之常用日期,数组API)