mix-cn
Version:
一个用于字符串拼接的小工具,常用于 class name 的拼接
2 lines (1 loc) • 611 B
JavaScript
import{isTrue as e,isArray as t,isString as o,isNumber as r,isFunction as n,isUndefined as i}from"a-type-of-js";function f(...s){const c=[],p=e=>e.trim().replace(/undefined/g," ").replace(/\s+/g," ").split(" ").sort().join(" "),l=e=>{if(i(e)||!o(e))return;const t=p(e).split(" ");t.length&&c.push(...t)};s.forEach(i=>{if(i&&!e(i))if(t(i))i.forEach(e=>l(f(e)));else if(o(i)||r(i))l(i.toString());else if(n(i)){const e=i();o(e)?l(e):e.forEach(e=>l(f(e)))}else for(const e in i)if(Object.prototype.hasOwnProperty.call(i,e)){!0===i[e]&&l(e)}});return p(new Array(...new Set(c)).join(" "))??void 0}export{f as xcn};