数组日期
问题:
- 获取2017-06-10格式的日期
- 获得随机数,要求是长度一致的字符串格式
- 写一个能遍历对象和数组的通用forEach函数
知识:
1.日期:
通过new Date().now()得到:1970开始到现在的毫秒数
//Date
console.log(Date.now()) //当前时间毫秒数、
var dt = new Date()
console.log(dt)
console.log(dt.getTime())
console.log(dt.getFullYear())
console.log(dt.getMonth()) //month从0-11 要记得加1
console.log(dt.getDate())
console.log(dt.getHours())
console.log(dt.getMinutes())
console.log(dt.getSeconds())
2.Math:
获得随机数 Math.random(),可以通过这个random来清理缓存。
3.数组API
(1)forEach 遍历所有元素
//forEach
var arr = [1, 5, 2, 4,7]
arr.forEach(function(item, index) {
console.log(index, item)
})
先item,再index注意顺序
(2)every 判断所有元素是否都复合条件
//every
var result = arr.every(function(item, index) {
if (item < 5) {
return true
}
})
console.log(result)
(3)some 判断是否至少有一个元素符合条件
//some
var result2 = arr.some(function(item, index) {
if (item < 5) {
return true
}
})
console.log(result2)
(4)Sort 排序
//sort
var arr2 = arr.sort(function(a, b) {
return a - b // a-b 从小到大
})
console.log(arr2)
(5)map 对元素重新组装,生成新数组
//map
var arr3 = arr.map(function(item, index) {
return '<b>'+ item + '<b>'
})
console.log(arr3)
(6)filter 过滤符合条件的元素
//filter
var arr4 = arr.filter(function(item, index) {
if (item > 2) {
return true
}
})
console.log(arr4)
4.对象api
var obj = {
x: 100,
y: 200,
z: 300
}
var key
for(key in obj) {
console.log(key , obj[key])
}
解答:
- 获取2017-06-10格式的日期
var ds = new Date() var year = ds.getFullYear() var month =ds.getMonth()+1 var day = ds.getDate() function formateDate(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' + date } return year + '-' + month + '-' +day } console.log(formateDate(ds))
- 获得随机数,要求是长度一致的字符串格式
//长度一致先加00再slice var random = Math.random() random = random + '000000000' random = random.slice(0,10) console.log(random)
- 写一个能遍历对象和数组的通用forEach函数
function forEach(obj) { var key if (obj instanceof Array) { obj.forEach(function(item, index){ console.log(index, item) }) } else { for(key in obj) { console.log(key, obj[key]) } } } forEach(obj); forEach(arr2);