1. 程式人生 > >JS基礎知識(五)陣列日期

JS基礎知識(五)陣列日期

陣列日期

問題:

  1. 獲取2017-06-10格式的日期
  2. 獲得隨機數,要求是長度一致的字串格式
  3. 寫一個能遍歷物件和陣列的通用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])
	}

解答: 

  1. 獲取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))
    	
    	

     

  2. 獲得隨機數,要求是長度一致的字串格式
     
    	//長度一致先加00再slice
    	var random = Math.random()
    	random = random + '000000000'
    	random = random.slice(0,10)
    	console.log(random)
    	

     

  3. 寫一個能遍歷物件和陣列的通用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);