105 lines
2.2 KiB
JavaScript
105 lines
2.2 KiB
JavaScript
// 获取路由URL参数
|
||
function urlSearch(parmas) {
|
||
let href = window.location.href
|
||
let query = href.substring(href.indexOf('?')+1);
|
||
let vars = query.split("&");
|
||
for (var i = 0; i < vars.length; i++) {
|
||
let pair = vars[i].split("=");
|
||
if(pair[0] == parmas){
|
||
return pair[1];
|
||
}
|
||
}
|
||
}
|
||
|
||
// 深拷贝
|
||
function deepClone(obj){
|
||
let objClone = Array.isArray(obj)?[]:{};
|
||
if(obj && typeof obj === "object"){
|
||
for(key in obj){
|
||
if(obj.hasOwnProperty(key)){
|
||
// 判断ojb子元素是否为对象,如果是,递归复制
|
||
if(obj[key] && typeof obj[key] === "object"){
|
||
objClone[key] = deepClone(obj[key]);
|
||
}else{
|
||
// 如果不是,简单复制
|
||
objClone[key] = obj[key];
|
||
}
|
||
}
|
||
}
|
||
}
|
||
return objClone;
|
||
}
|
||
|
||
// 防抖
|
||
function _debounce(fn, delay = 300) {
|
||
var timer = null;
|
||
return function () {
|
||
var _this = this;
|
||
var args = arguments;
|
||
if (timer) clearTimeout(timer);
|
||
timer = setTimeout(function () {
|
||
fn.apply(_this, args);
|
||
}, delay);
|
||
};
|
||
}
|
||
|
||
// 节流
|
||
function _throttle(fn,delay = 1000){
|
||
var lastTime, timer, delay;
|
||
return function(){
|
||
var _this = this;
|
||
var args = arguments;
|
||
var nowTime = Date.now();
|
||
if(lastTime && nowTime - lastTime < delay){
|
||
if (timer) clearTimeout(timer);
|
||
timer = setTimeout(function(){
|
||
lastTime = nowTime;
|
||
fn.apply(_this,args);
|
||
},delay)
|
||
}else{
|
||
lastTime = nowTime;
|
||
fn.apply(_this,args);
|
||
}
|
||
}
|
||
}
|
||
|
||
/*
|
||
* 下划线转换驼峰
|
||
*/
|
||
function underlineToHump(str) {
|
||
// 如果首字母是_,执行 replace 时会多一个_,这里需要去掉
|
||
if(str.slice(0,1) === '_'){
|
||
str = str.slice(1);
|
||
}
|
||
return str.replace(/([^_])(?:_+([^_]))/g, function ($0, $1, $2) {
|
||
return $1 + $2.toUpperCase();
|
||
});
|
||
}
|
||
|
||
/*
|
||
* 驼峰转换下划线
|
||
*/
|
||
function humpToUnderline(str) {
|
||
let temp = str.replace(/[A-Z]/g, function (match) {
|
||
return "_" + match.toLowerCase();
|
||
});
|
||
// 如果首字母是大写,执行replace时会多一个_,这里需要去掉
|
||
if(temp.slice(0,1) === '_'){
|
||
temp = temp.slice(1);
|
||
}
|
||
return temp;
|
||
}
|
||
|
||
|
||
|
||
|
||
|
||
export{
|
||
urlSearch,
|
||
deepClone,
|
||
_debounce,
|
||
_throttle,
|
||
underlineToHump,
|
||
humpToUnderline,
|
||
}
|