jr-util
Version:
这是MJR的JS工具库。定期更新
125 lines (124 loc) • 3.2 kB
JavaScript
function g(e) {
return Array.from(new Set(e));
}
function p(e) {
return e == null ? e : JSON.parse(JSON.stringify(e));
}
function a(e) {
if (!e && typeof e != "object")
throw new Error("error arguments deepClone");
const t = e.constructor === Array ? [] : {};
return Object.keys(e).forEach((r) => {
e[r] && typeof e[r] == "object" ? t[r] = a(e[r]) : t[r] = e[r];
}), t;
}
function d(e, t, r) {
let n, o, u, i, f;
const l = function() {
const c = +new Date() - i;
c < t && c > 0 ? n = setTimeout(l, t - c) : (n = null, r || (f = e.apply(u, o), n || (u = o = null)));
};
return function(...c) {
u = this, i = +new Date();
const s = r && !n;
return n || (n = setTimeout(l, t)), s && (f = e.apply(u, c), u = c = null), f;
};
}
function h(e) {
return e ? m(
Object.keys(e).map((t) => e[t] === void 0 ? "" : encodeURIComponent(t) + "=" + encodeURIComponent(e[t]))
).join("&") : "";
}
function b(e) {
const t = e.split("?")[1];
return t ? JSON.parse('{"' + decodeURIComponent(t).replace(/"/g, '\\"').replace(/&/g, '","').replace(/=/g, '":"').replace(/\+/g, " ") + '"}') : {};
}
function N(e) {
e = e == null ? window.location.href : e;
const t = e.substring(e.lastIndexOf("?") + 1), r = {}, n = /([^?&=]+)=([^?&=]*)/g;
return t.replace(n, (o, u, i) => {
const f = decodeURIComponent(u);
let l = decodeURIComponent(i);
return l = String(l), r[f] = l, o;
}), r;
}
function m(e) {
const t = [];
for (let r = 0; r < e.length; r++)
e[r] && t.push(e[r]);
return t;
}
const x = (e, t = 3, r = 3) => {
if (!e)
return "";
if (e.length < 3)
return e;
let n = 4;
e.length < t + r + n && (t = Math.floor(e.length / 3), r = Math.floor(e.length / 3)), n = e.length - t - r;
const o = `^(\\S{${t}})\\S{${n}}(\\S{${r}})$`, u = new RegExp(o);
return e.replace(u, "$1****$2");
}, O = (e, t = "") => {
let r = e, n = 100;
try {
let o = `${e}`;
r = Number(e) * n;
} catch {
return {
num: e,
unit: t,
full: e + t
};
}
if (r < 1e4 * n)
return {
num: e,
unit: t,
full: e + t
};
if (r >= 1e4 * n && r < 1e7 * n) {
const o = Number((Math.round(r) / 1e4 / n).toFixed(2));
return {
num: o,
unit: "\u4E07" + t,
full: o + "\u4E07" + t
};
} else if (r >= 1e7 * n) {
const o = Number((Math.round(r) / 1e7 / n).toFixed(2));
return {
num: o,
unit: "\u4EBF" + t,
full: o + "\u4EBF" + t
};
} else
return {
num: e,
unit: t,
full: e + t
};
}, $ = (e, t) => {
let r = 0, n = 0;
try {
r = Number(`${e}`), n = Number(`${t}`);
} catch {
return 0;
}
if (isNaN(r) || isNaN(n))
return 0;
let o = (Math.round((r - n) / n * 1e3) / 1e3).toFixed(2);
return Number(o);
}, w = (...e) => (console.log("jr", e), 0), S = (e, t) => new URL(`/src/assets/${e.substring(e.indexOf("/assets") + 8)}`, t);
export {
w as calcAdd,
m as cleanArray,
p as clone,
d as debounce,
a as deepClone,
x as desensitization,
O as formatBigNum,
$ as formatPercent,
S as getAssetUrl,
b as getQueryObject,
N as getQueryObject2,
h as param,
g as uniqueArr
};