/**
* @msg 提取url地址参数 转换为对象
* @param {url : string}
* @return {object}
*/
function urlParams(url) {
const params = url.substring(url.indexOf("?") + 1);
const paramsArr = params.split("&");
const paramsObj = {};
paramsArr.forEach((item, key) => {
paramsObj[item.split("=")[0]] = item.split("=")[1];
});
return paramsObj;
}
/**
* @msg 改变对象键值
* @param {数组 || 对象 && 指定改变的键值 对象}
* @return {Boolean}
*/
// changeKey(对象或者数组, {修改前的键值 : "要修改成的键值"})
function changeKey(arr, keyMap) {
let temString = JSON.stringify(arr);
for (let key in keyMap) {
const reg = new RegExp(`"${key}":`, 'g');
console.log(reg);
temString = temString.replace(reg, `"${keyMap[key]}":`);
}
return JSON.parse(temString);
}
/**
* @msg // 数组去重
* @param {arr: Array}
* @return {function}
*/
function deWeight(arr) {
return arr.filter((item, index) => arr.indexOf(item) === index);
// return [...new Set(arr)]; 这种方法也可以 二选一
}
/**
* @msg 防抖
* @param {func:function, delay:number , I:}
* @return {function}
*/
function debouncing(func, delay = 300, I = null) {
return (...args) => {
clearTimeout(I);
I = setTimeout(func.bind(null, ...args), delay);
};
}
/**
* @msg // 节流
* @param {func:function, delay:number}
* @return {function}
*/
function throttle(func, delay = 300) {
let lock = false;
return (...args) => {
if (lock) {
return;
}
func(...args);
lock = true;
setTimeout(() => {
lock = false;
}, delay);
};
}
/**
* @msg 字符串去重空格的方法
* @param {字符串 , type 1-前后空格,2-前空格,3-后空格}
* @return {new 字符串}
*/
//
export function blank(str, type) {
switch (type) {
case 1:
return str.replace(/(^\s*)|(\s*$)/g, '');
case 2:
return str.replace(/(^\s*)/g, '');
case 3:
return str.replace(/(\s*$)/g, '');
default:
return str.replace(/\s+/g, '');
}
}
/**
* @msg // 根据时间,返回当前时间的星期.
* @param {time:时间戳 || 时间}
* @return {String || Number}
*/
export function getWeek(time) {
if (typeof time !== "object" && typeof time !== "number") {
throw new Error("传入类型不对, 必须是 new Date() 或者 时间戳 (数字类型)");
}
try {
if (typeof time === "number" && time.toString().length === 13)
return switchingTime(time);
else if (typeof time === "object" && typeof time.getTime() === "number")
return switchingTime(time);
} catch (err) {
throw new Error(
`请检查您的传入的参数,必须是 new Date() 或者 时间戳 (数字类型 number)`
);
}
}
function switchingTime(time) {
let timeDate;
const ENUM = {
0: "星期日",
1: "星期一",
2: "星期二",
3: "星期三",
4: "星期四",
5: "星期五",
6: "星期六",
};
if (typeof time === "number") timeDate = new Date(time);
else timeDate = time;
const weekNum = new Date(
`${timeDate.getMonth() + 1}/${timeDate.getDate()}/${timeDate.getFullYear()}`
).getDay();
return ENUM[weekNum];
}
未完…