1. 程式人生 > 其它 >js - 封裝常用的公共方法

js - 封裝常用的公共方法

在這裡插入圖片描述

【獲取當前時間的年月日 時分秒】

	function getTime() {
		var date = new Date();
		var year = date.getFullYear();
		var month = date.getMonth() + 1;
		var day = date.getDate()
		var hours = date.getHours(); //時
		var minutes = date.getMinutes(); //分
		var seconds = date.getSeconds(); //秒
		

		month = month < 10 ? '0' +
month : month; day = day < 10 ? '0' + day : day hours = hours < 10 ? '0' + hours : hours minutes = minutes < 10 ? '0' + minutes : minutes seconds = seconds < 10 ? '0' + seconds : seconds return year + "-" + month + "-" + day + " " + hours + ":"
+ minutes + ":" + seconds } getTime() //2021-04-22 09:46:53

【獲取當時間的之後或者之前的幾天】

	function getDays(num) {
		var date = new Date();
		date.setDate(date.getDate() + num) //當使用setDate()之後,date物件就發生了改變,所以之後getDate()就能獲取到指定的日期
		let year = date.getFullYear() //年  
		let month = date.getMonth() + 1 //月
let day = date.getDate(); //天數 if (month >= 1 && month <= 9) { month = `0${month}` } if (day >= 1 && day <= 9) { day = `0${day}` } return `${year}-${month}-${day}` } getDays(1);

【封裝函式自動判斷平年閏年和各月天數,返回當前月的天數】

	function getDaysOfEveryMonth(year, month) {
		var baseMonthsDay = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]; //各月天數
		var thisYear = year; //今年
		var thisMonth = month; //本月
		var thisMonthDays; //這個月的天數變數儲存
		//判斷是閏年嗎?閏年2月29天
		function isRunYear(fullYear) {
			return (fullYear % 4 == 0 && (fullYear % 100 != 0 || fullYear % 400 == 0));
		}

		if (isRunYear(thisYear) && thisMonth == 2) { //閏年2月29天
			thisMonthDays = baseMonthsDay[1] + 1
		} else {
			thisMonthDays = baseMonthsDay[thisMonth - 1];
		}
		return thisMonthDays;
	}
	getDaysOfEveryMonth(2021,4);	

【獲取url後邊引數的引數值】

	function getParamsName(attr) {
		var url = 'baidu.com?name=冠軍&age=18&province=山西' //location.href; 
		var params = url.split('?')[1];
		var paramsObj = {};
		if (params) {
			var paramsList = params.split('&') || [];
			for (var i = 0; i < paramsList.length; i++) {
				var item = paramsList[i].split('=') || [];
				paramsObj[item[0]] = item[1];
			}
		}
		return decodeURIComponent(paramsObj[attr]);
	}
	getParamsName('name') //冠軍	

【數字千分位】

	function toFormat(num) {
		num = Number(num);
		return num.toLocaleString();
	}
	toFormat(138000); //138,000

【手機號驗證】

	function isPhoneNumber(tel) {
		var reg = /^0?1[3|4|5|6|7|8|9][0-9]\d{8}$/;
		return reg.test(tel);
	}

【陣列去重】

	//方法一:
	function uniq_one(arr) {
		return [...new Set(arr)]
	}
	uniq_one(arr) 

	//方法二:
	function uniq_two(arr) {
		var uniq = [];
		for (var i = 0; i < arr.length; i++) {
			if (uniq.indexOf(arr[i]) == -1) {
				uniq.push(arr[i]);
			}
		}
		return uniq;
	}
	uniq_two(arr);

【兩個陣列對比,去除相同元素,得到新陣列】

	function getArrUnequal(arr1, arr2) {
		let list = arr2.filter(items => { //filter 它用於把Array的某些元素過濾掉,然後返回剩下的元素
			if (!arr1.includes(items))
				return items;
		})
		return list;
	}
	getArrUnequal(arr1, arr2);

【兩個陣列對比,取出相同元素,得到新陣列】

	function getArrEqual(arr1, arr2) {
		let newArr = [];
		for (var i = 0; i < arr1.length; i++) {
			for (var j = 0; j < arr2.length; j++) {
				if (arr1[i] == arr2[j]) {
					newArr.push(arr1[i])
				}
			}
		}
		return newArr;
	}
	getArrEqual(arr1, arr2);