mstf-kit
Version:
一个现代化的 JavaScript/TypeScript 工具库,提供了丰富的常用工具函数
2 lines (1 loc) • 1.01 kB
JavaScript
;function t(r){if(null===r||"object"!=typeof r)return r;if(r instanceof Date)return new Date(r.getTime());if(r instanceof RegExp)return new RegExp(r);if(Array.isArray(r))return r.map((r=>t(r)));const e={};return Object.keys(r).forEach((n=>{e[n]=t(r[n])})),e}Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"}),exports.deepClone=t,exports.get=function(t,r,e){const n=Array.isArray(r)?r:r.split(".");let o=t;for(const i of n){if(null==o)return e;o=o[i]}return void 0===o?e:o},exports.merge=function r(...e){const n=t=>null!==t&&"object"==typeof t&&!Array.isArray(t),o={};for(const i of e)for(const e in i){const s=i[e];n(s)?n(o[e])?o[e]=r(o[e],s):o[e]=t(s):void 0!==s&&(o[e]=t(s))}return o},exports.omit=function(t,r){const e={...t};return r.forEach((t=>delete e[t])),e},exports.pick=function(t,r){return r.reduce(((r,e)=>(e in t&&(r[e]=t[e]),r)),{})},exports.set=function(t,r,e){const n=Array.isArray(r)?r:r.split("."),o=n.pop();let i=t;for(const s of n)s in i||(i[s]={}),i=i[s];i[o]=e};