@ryanuo/utils
Version:
提供多种实用工具函数,涵盖算法、浏览器操作、网络请求等多个领域
30 lines (29 loc) • 964 B
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.deepClone = deepClone;
exports.getTypeName = getTypeName;
exports.numberToFixed = numberToFixed;
exports.toString = void 0;
const toString = v => Object.prototype.toString.call(v);
exports.toString = toString;
function getTypeName(v) {
const type = toString(v);
return type.slice(8, -1).toLowerCase();
}
function numberToFixed(num, fixed = 4) {
if (num === 0 || Number.isNaN(num)) return 0;
return Number(num.toFixed(fixed));
}
function deepClone(obj) {
if (obj === null || typeof obj !== "object") return obj;
if (obj instanceof Date) return new Date(obj.getTime());
if (obj instanceof RegExp) return new RegExp(obj.source, obj.flags);
if (Array.isArray(obj)) return obj.map(item => deepClone(item));
const clone = {};
for (const key in obj) {
if (Object.prototype.hasOwnProperty.call(obj, key)) clone[key] = deepClone(obj[key]);
}
return clone;
}