UNPKG

jr-util

Version:

这是MJR的JS工具库。定期更新

125 lines (124 loc) 3.2 kB
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 };