原文地址
NPM地址 使用方法相同
url引數提取
//提取url中的引數
function query(url) {
if(!(url instanceof String )) return {}
url = url.split('?')[1] //提取url問號?之后的字串
if(!url){
return {}
}
url = url.split('&') //分離&之間的字串引數
if(!url){
return {}
}
let params = {}
url.filter(item => {
item = item.toString().split('=')
let key = item[0]
let value = https://www.cnblogs.com/big0range/p/item[1]
params[key]= value
})
return params
}
//回傳值為{key:value}
深拷貝
function cloneLoop(x) {
//如果不是物件或者陣列 直接回傳
if(!(x instanceof Object) || !(x instanceof Array) ) return x
// 堆疊
const loopList = [
{
parent: root,
key: undefined,
data: x,
}
];
while(loopList.length) {
// 深度優先
const node = loopList.pop();
const parent = node.parent;
const key = node.key;
const data = https://www.cnblogs.com/big0range/p/node.data;
// 初始化賦值目標,key為undefined則拷貝到父元素,否則拷貝到子元素
let res = parent;
if (typeof key !=='undefined') {
res = parent[key] = {};
}
for(let k in data) {
if (data.hasOwnProperty(k)) {
if (typeof data[k] === 'object') {
// 下一次回圈
loopList.push({
parent: res,
key: k,
data: data[k],
});
} else {
res[k] = data[k];
}
}
}
}
return root;
}
時間格式處理
//主要用于處理相隔多少天的日期查詢
function dateFormat (subtract, isStart) { //時間差(天) // 是開始時間還是結束時間
let nowDate = new Date().getTime() //今天的時間 1970 年 1 月 1 日至今的毫秒數
let subDate = subtract * 24 * 60 * 60 * 1000 //計算減去所設定的時間
let newDate = new Date(nowDate - subDate) //減去之后的時間
let year = newDate.getFullYear() //年
let month = newDate.getMonth() + 1 //月 之所以+1 是因為月份是0-11
if (month < 10) {
month = '0' + month
}
let day = newDate.getDate() //日
if (day < 10) {
day = '0' + day
}
let HMS //小時分鐘秒
if (isStart) { //開始時間
HMS = ' 00:00:00'
} else {
HMS = ' 23:59:59'
}
let date = year + '-' + month + '-' + day + HMS
return date
}
sessionStorage的存取
class Session {
setSession(key, value) {
window.sessionStorage.setItem(key, value)
}
getSession(key) {
if (typeof key === 'string') {
return window.sessionStorage.getItem(key) || ''
}
if (key instanceof Array) {
const setKey = [...new Set(key)]
let newObj = {}
setKey.forEach(item => {
const value = https://www.cnblogs.com/big0range/p/window.sessionStorage.getItem(item) ||''
if (value) {
newObj[item] = value
}
})
return newObj
}
}
}
//get方法支持陣列格式 如['key1','key2'] 回傳值為{key1:key1,key2:key2}
localStorage
class Storage {
setStorage(key, value) {
window.localStorage.setItem(key, value)
}
getStorage(key) {
if (typeof key === 'string') {
return window.localStorage.getItem(key) || ''
}
if (key instanceof Array) {
const setKey = [...new Set(key)]
let newObj = {}
setKey.forEach(item => {
const value = https://www.cnblogs.com/big0range/p/window.localStorage.getItem(item) ||''
if (value) {
newObj[item] = value
}
})
return newObj
}
}
}
//get方法支持字串和陣列
//
export default new Storage()
快排
function sort(arr) {
if (arr.length <= 1) {
return arr
}
const pivot = arr.splice(0, 1)[0]
const left = [],
right = []
arr.forEach((item, index) => {
if (item < pivot) {
left.push(item)
} else {
right.push(item)
}
})
// return arrSort(left).concat(pivot,arrSort(right))
return [...sort(left), pivot, ...sort(right)]
}
// 寫著玩的 沒啥用 理解原理就行
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/242275.html
標籤:JavaScript
