Comparing version 1.5.18 to 1.5.19
@@ -598,2 +598,12 @@ /** | ||
function extend (target, args, isClone) { | ||
for (var source, index = 1, len = args.length; index < len; index++) { | ||
source = args[index] | ||
arrayEach(objectKeys(args[index]), function (key) { | ||
target[key] = isClone ? clone(source[key], isClone) : source[key] | ||
}) | ||
} | ||
return target | ||
} | ||
/** | ||
@@ -606,9 +616,12 @@ * 浅拷贝一个或者多个对象到目标对象中 | ||
*/ | ||
var objectAssign = Object.assign || function (target) { | ||
var objectAssign = function (target) { | ||
if (target) { | ||
for (var source, index = 1, len = arguments.length; index < len; index++) { | ||
source = arguments[index] | ||
arrayEach(objectKeys(arguments[index]), function (key) { | ||
target[key] = source[key] | ||
}) | ||
var args = arguments | ||
if (target === true) { | ||
if (args.length > 1) { | ||
target = isArray(target[1]) ? [] : {} | ||
return extend(target, args, true) | ||
} | ||
} else { | ||
return Object.assign ? Object.assign.apply(Object, args) : extend(target, args) | ||
} | ||
@@ -618,4 +631,2 @@ } | ||
} | ||
var assign = objectAssign | ||
var extend = objectAssign | ||
@@ -859,2 +870,3 @@ /** | ||
isString: isString, | ||
isNumber: isNumber, | ||
isRegExp: isRegExp, | ||
@@ -882,4 +894,4 @@ isObject: isObject, | ||
objectAssign: objectAssign, | ||
assign: assign, | ||
extend: extend, | ||
assign: objectAssign, | ||
extend: objectAssign, | ||
stringToJson: stringToJson, | ||
@@ -1309,2 +1321,15 @@ jsonToString: jsonToString, | ||
/** | ||
* 千分位分隔符、小数点 | ||
* | ||
* @param {String/Number} num 数值 | ||
* @param {Object} 参数 {separator: 分隔符, fixed: 小数位数} | ||
* @return {String} | ||
*/ | ||
function commafy (num, options) { | ||
var opts = baseExports.objectAssign({ spaceNumber: 3, separator: ',', fixed: 0 }, options) | ||
var result = parseFloat(('' + num).replace(/,/g, '') || 0).toFixed(opts.fixed).split('.') | ||
return result[0].replace(new RegExp('(?=(?!(\\b))(\\d{' + opts.spaceNumber + '})+$)', 'g'), opts.separator) + (result[1] ? '.' + result[1] : '') | ||
} | ||
var numberExports = { | ||
@@ -1315,3 +1340,4 @@ getRandom: getRandom, | ||
arrayMax: arrayMax, | ||
max: max | ||
max: max, | ||
commafy: commafy | ||
} | ||
@@ -1318,0 +1344,0 @@ |
@@ -7,2 +7,2 @@ /** | ||
*/ | ||
!function(n,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):n.XEUtils=t()}(this,function(){"use strict";function n(){}function t(n){var t=[];return nn.isArray(n)&&nn.arrayEach(n,function(n){t.includes(n)||t.push(n)}),t}function e(){for(var n=[],e=0,r=arguments.length;e<r;e++)n=n.concat(arguments[e]);return t(n)}function r(n,t,e){return nn.isArray(n)?n.sort(t?nn.isFunction(t)?t.bind(e||this):function(n,e){return n[t]>e[t]?1:-1}:function(n,t){return n>t?1:-1}):n}function i(n){for(var t=[],e=nn.objectValues(n),r=e.length-1;r>=0;r--){var i=r>0?fn.getRandom(0,r):0;t.push(e[i]),e.splice(i,1)}return t}function o(n,t){var e=i(n);return 1===arguments.length?e[0]:(t<e.length&&(e.length=t||0),e)}function u(n,t,e){if(n){if(nn.isArray(n))return n.some(t,e||this);for(var r in n)if(n.hasOwnProperty(r)&&t.call(e||this,n[r],r,n))return!0}return!1}function a(n,t,e){if(n){if(nn.isArray(n))return n.every(t,e||this);for(var r in n)if(n.hasOwnProperty(r)&&!t.call(e||this,n[r],r,n))return!1}return!0}function s(n,t,e){if(n){if(nn.isArray(n))return n.filter(t,e||this);var r={};return nn.each(n,function(i,o){t.call(e||this,i,o,n)&&(r[o]=i)}),r}return[]}function c(n,t,e){if(n){if(nn.isArray(n))return n.find(t,e||this);for(var r in n)if(n.hasOwnProperty(r)&&t.call(e||this,n[r],r,n))return n[r]}}function f(n,t,e){var r=[];if(n){if(nn.isArray(n))return n.map(t,e||this);nn.each(n,function(){r.push(t.apply(e||this,arguments))})}return r}function l(n){return"function"==typeof n}function y(n){return"string"==typeof n}function h(n){return"number"==typeof n}function p(n){return"object"==typeof n}function g(n){return!!n&&n.constructor===Object}function m(n){return"[object Date]"===P.call(n)}function d(n){return"undefined"!=typeof Symbol&&Symbol.isSymbol?Symbol.isSymbol(n):"symbol"==typeof n}function v(n){return function(t,e){if(t){if(y(t)||J(t))return n(t,e);for(var r in t)if(e===t[r])return r}return-1}}function b(n,t){return-1!==B(n,t)}function S(n){var t=[];if(n){if(Object.keys)return Object.keys(n);E(n,function(n,e){t.push(e)})}return t}function j(n){if(Object.values)return n?Object.values(n):[];var t=[];return w(S(n),function(e){t.push(n[e])}),t}function M(n){if(Object.entries)return n?Object.entries(n):[];var t=[];return w(S(n),function(e){t.push([e,n[e]])}),t}function D(n){return j(n)[0]}function O(n){var t=j(n);return t[t.length-1]}function E(n,t,e){for(var r in n)n.hasOwnProperty(r)&&t.call(e||this,n[r],r,n)}function w(n,t,e){for(var r=0,i=n.length||0;r<i;r++)t.call(e||this,n[r],r,n)}function x(n,t,e){return n?J(n)?l(n.forEach)?n.forEach(t,e||this):w(n,t,e||this):E(n,t,e||this):n}function N(t){return g(t)?function(n){var t={};return x(n,function(n,e){t[e]=N(n)}),t}(t):J(t)?function(t){return n.arrayMap(t,N)}(t):t}function T(n,t,e){var r=[],i="undefined"!=typeof document;if(nn.isArray(n)?r=n:arguments.length>1?r=[nn.objectAssign({name:n,value:t},e)]:nn.isObject(n)&&(r=[n]),!(r.length>0)){var o={};return i&&document.cookie&&nn.arrayEach(document.cookie.split("; "),function(n){var t=n.indexOf("=");o[decodeURIComponent(n.substring(0,t))]=decodeURIComponent(n.substring(t+1)||"")}),1===arguments.length?o[n]:o}i&&nn.arrayEach(r,function(n){var t=nn.objectAssign({},n),e=[];t.name&&(e.push(encodeURIComponent(t.name)+"="+encodeURIComponent(nn.isObject(t.value)?JSON.stringify(t.value):t.value)),void 0!==t.expires&&(t.expires=new Date((new Date).getTime()+864e5*parseFloat(t.expires)).toUTCString()),nn.arrayEach(["expires","path","domain","secure"],function(n){void 0!==t[n]&&e.push(n+"="+t[n])})),document.cookie=e.join("; ")})}function A(n,t){if(n){if(nn.isDate(n))return n;if(!isNaN(n))return new Date(n);if(nn.isString(n)){t=t||"yyyy-MM-dd HH:mm:ss.SSS";var e=[];return nn.arrayEach(on,function(r){for(var i,o,u=0,a=r.rules,s=a.length;u<s;u++){if(i=a[u],(o=t.indexOf(i[0]))>-1){e.push(parseFloat(n.substring(o,o+i[1])||0)+(r.offset||0));break}u===s-1&&e.push(0)}}),new Date(e[0],e[1],e[2],e[3],e[4],e[5],e[6])}}return"Invalid Date"}function F(n,t,e){var r=A(n),i=t&&!isNaN(t)?t:0,o=r.getHours(),u=r.getMinutes(),a=r.getSeconds(),s=r.getMilliseconds();if("first"===e){var c=r.getFullYear(),f=r.getMonth();return(f+=i)<0?new Date(c-Math.ceil((f=Math.abs(f))/12),12-(f%12||1),1,o,u,a,s):new Date(c+Math.floor(f/12),f%12,1,o,u,a,s)}if("last"===e)return new Date(F(r,i+1,"first").getTime()-864e5);var l=r.getDate(),y=F(r,i,"first"),h=y.getMonth();for(y.setDate(l);h<y.getMonth();)y.setDate(--l);return y}function I(n){var t={},e=n.split("?")[1]||"";return e&&nn.arrayEach(e.split("&"),function(n){var e=n.split("=");t[decodeURIComponent(e[0])]=decodeURIComponent(e[1]||"")}),t}function R(){return sn.origin||sn.protocol+"//"+sn.host}function H(n,t){return nn.isFunction(t)?C.arraySort(C.arrayMap(n,t,this)):C.arraySort(n,t)}function k(){return H.apply(this,arguments)[0]}function U(){return H.apply(this,arguments).reverse()[0]}function q(n){var t=new RegExp("(?:"+nn.objectKeys(n).join("|")+")","g");return function(e){return String(e||"").replace(t,function(t){return n[t]})}}n.version="1.5.18";var C={arrayUniq:t,uniq:t,arrayUnion:e,union:e,arraySort:r,sort:r,arrayShuffle:i,shuffle:i,arraySample:o,sample:o,arraySome:u,some:u,arrayEvery:a,every:a,arrayFilter:s,filter:s,arrayFind:c,find:c,arrayMap:f,map:f},P=Object.prototype.toString,J=Array.isArray||function(n){return"[object Array]"===P.call(n)},W=Number.isInteger,Y=0,B=v(function(n,t){if(n.indexOf)return n.indexOf(t);for(var e=0,r=n.length;e<r;e++)if(t===n[e])return e}),K=v(function(n,t){if(n.lastIndexOf)return n.lastIndexOf(t);for(var e=n.length-1;e>=0;e--)if(t===n[e])return e;return-1}),L=b,$=Object.assign||function(n){if(n)for(var t,e=1,r=arguments.length;e<r;e++)t=arguments[e],w(S(arguments[e]),function(e){n[e]=t[e]});return n},z=$,V=$,X=S,G=j,Q=M,Z=D,_=O,nn={isNaN:isNaN,isFinite:isFinite,isArray:J,isFloat:function(n){return null!==n&&!isNaN(n)&&!W(n)},isInteger:W,isFunction:l,isBoolean:function(n){return"boolean"==typeof n},isString:y,isRegExp:function(n){return"[object RegExp]"===P.call(n)},isObject:p,isPlainObject:g,isDate:m,isError:function(n){return"[object Error]"===P.call(n)},isTypeError:function(n){return!!n&&n.constructor===TypeError},isEmpty:function(n){if(0===n||!h(n)){for(var t in n)return!1;return!0}return!1},isNull:function(n){return null===n},isSymbol:d,isArguments:function(n){return"[object Arguments]"===P.call(n)},isElement:function(n){return n&&y(n.nodeName)&&h(n.nodeType)},isDocument:function(n){return n&&9===n.nodeType&&"undefined"!=typeof document},isWindow:function(n){return n&&n===n.window&&"undefined"!=typeof window},isFormData:function(n){return"undefined"!=typeof FormData&&n instanceof FormData},isLeapYear:function(t){var e=(t?n.stringToDate(t):new Date).getFullYear();return e%4==0&&(e%100!=0||e%400==0)},getType:function(n){return null===n?""+n:d(n)?"symbol":m(n)?"date":J(n)?"array":typeof n},uniqueId:function(){return++Y},getSize:function(n){var t=0;return y(n)||J(n)?n.length:(x(n,function(){t++}),t)},lastIndexOf:K,includes:b,contains:L,objectAssign:$,assign:z,extend:V,stringToJson:function(n){if(p(n))return n;if(y(n))try{return JSON.parse(n)}catch(n){console.error(n)}return{}},jsonToString:function(n){if(p(n))try{return JSON.stringify(n)}catch(n){console.error(n)}return n?""+n:""},objectKeys:S,keys:X,objectValues:j,values:G,objectEntries:M,entries:Q,arrayFirst:D,first:Z,arrayLast:O,last:_,objectEach:E,arrayEach:w,each:x,groupBy:function(n,t,e){var r,i,o={};return n&&(y(t)?(i=t,t=null):t=l(t)?t.bind(e||this):i=null,x(n,function(e,u){r=t?t(e,u,n):i?e[i]:e,o[r]?o[r].push(e):o[r]=[e]})),o},objectMap:function(n,t,e){var r={};return x(n,function(i,o){r[o]=t.call(e||this,i,o,n)}),r},clone:function(n,t){return n?t?N(n):$(g(n)?{}:[],n):n}},tn={browse:function(){var n={};if("undefined"!=typeof document){var t=document.body||document.documentElement;nn.arrayEach(["webkit","khtml","moz","ms","o"],function(e){n["-"+e]=!!t[e+"MatchesSelector"]})}return n}};nn.objectAssign(T,{setItem:function(n,t){T(n,t)},getItem:function(n){return T(n)},removeItem:function(n){T(n,null,{expires:-1})},getJSON:function(){return T()}});var en={cookie:T},rn=Date.now||function(){return(new Date).getTime()},on=[{rules:[["yyyy",4],["yyy",3],["yy",2]]},{rules:[["MM",2],["M",1]],offset:-1},{rules:[["dd",2],["d",1]]},{rules:[["HH",2],["H",1]]},{rules:[["mm",2],["m",1]]},{rules:[["ss",2],["s",1]]},{rules:[["SSS",3],["SS",2],["S",1]]}],un=[["yyyy",31536e6],["MM",2592e6],["dd",864e5],["HH",36e5],["mm",6e4],["ss",1e3],["S",0]],an={timestamp:rn,now:rn,stringToDate:A,dateToString:function(n,t){if(n){if(n=A(n),nn.isDate(n)){var e=["日","一","二","三","四","五","六"],r={"q+":Math.floor((n.getMonth()+3)/3),"M+":n.getMonth()+1,"E+":n.getDay(),"d+":n.getDate(),"H+":n.getHours(),"m+":n.getMinutes(),"s+":n.getSeconds(),S:n.getMilliseconds()},i=String(t||"yyyy-MM-dd HH:mm:ss").replace(/(y+)/,function(t){return(""+n.getFullYear()).substr(4-t.length)});for(var o in r)if(r.hasOwnProperty(o)){var u=""+r[o];i=i.replace(new RegExp("("+o+")"),function(n){return"q+"===o||"E+"===o?e[u]:1===n.length?u:("00"+u).substr(u.length)})}return i}return n}return""},getWhatMonth:F,getWhatWeek:function(n,t,e){var r=Number(/^[0-7]$/.test(e)?e:0),i=A(n),o=i.getDay(),u=i.getTime()+864e5*((0===r?7:r)-(0===o?7:o));return t&&!isNaN(t)&&(u+=6048e5*t),new Date(u)},getWhatDay:function(n,t){return new Date(A(n).getTime()+(t&&!isNaN(t)?864e5*t:0))},getDaysOfMonth:function(n,t){return Math.floor((F(n,t,"last").getTime()-F(n,t,"first").getTime())/864e5)+1},getDateDiff:function(n,t,e){var r={},i=A(n).getTime(),o=t?A(t).getTime():new Date;if(i<o)for(var u,a=o-i,s=e&&e.length>0?e:un,c=0,f=s.length;c<f;c++)a>=(u=s[c])[1]&&(c===f-1?a&&(r[u[0]]=a):(r[u[0]]=Math.floor(a/u[1]),a-=r[u[0]]*u[1]));return r}},sn=null;"undefined"!=typeof location&&(sn=location);var cn={getBaseURL:function(){var n=sn.pathname,t=nn.lastIndexOf(n,"/")+1;return R()+(t===n.length?n:n.substring(0,t))},locat:function(){return sn?{port:sn.port,href:sn.href,host:sn.host,hostname:sn.hostname,protocol:sn.protocol,origin:R(),hash:(sn.hash.split("#")[1]||"").split("?")[0]||"",query:I(sn.hash),params:I(sn.search)}:{}}},fn={getRandom:function(n,t){return n>=t?n:(n>>=0)+Math.round(Math.random()*((t||9)-n))},arrayMin:k,min:k,arrayMax:U,max:U},ln={"&":"&","<":"<",">":">",'"':""","'":"'","`":"`"},yn={};nn.arrayEach(nn.objectKeys(ln),function(n){yn[ln[n]]=n});var hn={escape:q(ln),unescape:q(yn)},pn={};return nn.objectAssign(pn,C,nn,tn,en,an,cn,fn,hn),n.mixin=function(t){pn.objectEach(t,function(t,e){n[e]=pn.isFunction(t)?function(){var e=t.apply(n.$context,arguments);return n.$context=null,e}:t})},n.mixin(pn),n}); | ||
!function(n,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):n.XEUtils=t()}(this,function(){"use strict";function n(){}function t(n){var t=[];return nn.isArray(n)&&nn.arrayEach(n,function(n){t.includes(n)||t.push(n)}),t}function e(){for(var n=[],e=0,r=arguments.length;e<r;e++)n=n.concat(arguments[e]);return t(n)}function r(n,t,e){return nn.isArray(n)?n.sort(t?nn.isFunction(t)?t.bind(e||this):function(n,e){return n[t]>e[t]?1:-1}:function(n,t){return n>t?1:-1}):n}function i(n){for(var t=[],e=nn.objectValues(n),r=e.length-1;r>=0;r--){var i=r>0?fn.getRandom(0,r):0;t.push(e[i]),e.splice(i,1)}return t}function o(n,t){var e=i(n);return 1===arguments.length?e[0]:(t<e.length&&(e.length=t||0),e)}function u(n,t,e){if(n){if(nn.isArray(n))return n.some(t,e||this);for(var r in n)if(n.hasOwnProperty(r)&&t.call(e||this,n[r],r,n))return!0}return!1}function a(n,t,e){if(n){if(nn.isArray(n))return n.every(t,e||this);for(var r in n)if(n.hasOwnProperty(r)&&!t.call(e||this,n[r],r,n))return!1}return!0}function s(n,t,e){if(n){if(nn.isArray(n))return n.filter(t,e||this);var r={};return nn.each(n,function(i,o){t.call(e||this,i,o,n)&&(r[o]=i)}),r}return[]}function c(n,t,e){if(n){if(nn.isArray(n))return n.find(t,e||this);for(var r in n)if(n.hasOwnProperty(r)&&t.call(e||this,n[r],r,n))return n[r]}}function f(n,t,e){var r=[];if(n){if(nn.isArray(n))return n.map(t,e||this);nn.each(n,function(){r.push(t.apply(e||this,arguments))})}return r}function l(n){return"function"==typeof n}function y(n){return"string"==typeof n}function h(n){return"number"==typeof n}function p(n){return"object"==typeof n}function g(n){return!!n&&n.constructor===Object}function m(n){return"[object Date]"===W.call(n)}function d(n){return"undefined"!=typeof Symbol&&Symbol.isSymbol?Symbol.isSymbol(n):"symbol"==typeof n}function v(n){return function(t,e){if(t){if(y(t)||Y(t))return n(t,e);for(var r in t)if(e===t[r])return r}return-1}}function b(n,t){return-1!==K(n,t)}function j(n,t,e){for(var r,i=1,o=t.length;i<o;i++)r=t[i],w(S(t[i]),function(t){n[t]=e?F(r[t],e):r[t]});return n}function S(n){var t=[];if(n){if(Object.keys)return Object.keys(n);E(n,function(n,e){t.push(e)})}return t}function M(n){if(Object.values)return n?Object.values(n):[];var t=[];return w(S(n),function(e){t.push(n[e])}),t}function D(n){if(Object.entries)return n?Object.entries(n):[];var t=[];return w(S(n),function(e){t.push([e,n[e]])}),t}function O(n){return M(n)[0]}function x(n){var t=M(n);return t[t.length-1]}function E(n,t,e){for(var r in n)n.hasOwnProperty(r)&&t.call(e||this,n[r],r,n)}function w(n,t,e){for(var r=0,i=n.length||0;r<i;r++)t.call(e||this,n[r],r,n)}function N(n,t,e){return n?Y(n)?l(n.forEach)?n.forEach(t,e||this):w(n,t,e||this):E(n,t,e||this):n}function A(t){return g(t)?function(n){var t={};return N(n,function(n,e){t[e]=A(n)}),t}(t):Y(t)?function(t){return n.arrayMap(t,A)}(t):t}function F(n,t){return n?t?A(n):V(g(n)?{}:[],n):n}function T(n,t,e){var r=[],i="undefined"!=typeof document;if(nn.isArray(n)?r=n:arguments.length>1?r=[nn.objectAssign({name:n,value:t},e)]:nn.isObject(n)&&(r=[n]),!(r.length>0)){var o={};return i&&document.cookie&&nn.arrayEach(document.cookie.split("; "),function(n){var t=n.indexOf("=");o[decodeURIComponent(n.substring(0,t))]=decodeURIComponent(n.substring(t+1)||"")}),1===arguments.length?o[n]:o}i&&nn.arrayEach(r,function(n){var t=nn.objectAssign({},n),e=[];t.name&&(e.push(encodeURIComponent(t.name)+"="+encodeURIComponent(nn.isObject(t.value)?JSON.stringify(t.value):t.value)),void 0!==t.expires&&(t.expires=new Date((new Date).getTime()+864e5*parseFloat(t.expires)).toUTCString()),nn.arrayEach(["expires","path","domain","secure"],function(n){void 0!==t[n]&&e.push(n+"="+t[n])})),document.cookie=e.join("; ")})}function I(n,t){if(n){if(nn.isDate(n))return n;if(!isNaN(n))return new Date(n);if(nn.isString(n)){t=t||"yyyy-MM-dd HH:mm:ss.SSS";var e=[];return nn.arrayEach(on,function(r){for(var i,o,u=0,a=r.rules,s=a.length;u<s;u++){if(i=a[u],(o=t.indexOf(i[0]))>-1){e.push(parseFloat(n.substring(o,o+i[1])||0)+(r.offset||0));break}u===s-1&&e.push(0)}}),new Date(e[0],e[1],e[2],e[3],e[4],e[5],e[6])}}return"Invalid Date"}function R(n,t,e){var r=I(n),i=t&&!isNaN(t)?t:0,o=r.getHours(),u=r.getMinutes(),a=r.getSeconds(),s=r.getMilliseconds();if("first"===e){var c=r.getFullYear(),f=r.getMonth();return(f+=i)<0?new Date(c-Math.ceil((f=Math.abs(f))/12),12-(f%12||1),1,o,u,a,s):new Date(c+Math.floor(f/12),f%12,1,o,u,a,s)}if("last"===e)return new Date(R(r,i+1,"first").getTime()-864e5);var l=r.getDate(),y=R(r,i,"first"),h=y.getMonth();for(y.setDate(l);h<y.getMonth();)y.setDate(--l);return y}function H(n){var t={},e=n.split("?")[1]||"";return e&&nn.arrayEach(e.split("&"),function(n){var e=n.split("=");t[decodeURIComponent(e[0])]=decodeURIComponent(e[1]||"")}),t}function k(){return sn.origin||sn.protocol+"//"+sn.host}function U(n,t){return nn.isFunction(t)?J.arraySort(J.arrayMap(n,t,this)):J.arraySort(n,t)}function q(){return U.apply(this,arguments)[0]}function C(){return U.apply(this,arguments).reverse()[0]}function P(n){var t=new RegExp("(?:"+nn.objectKeys(n).join("|")+")","g");return function(e){return String(e||"").replace(t,function(t){return n[t]})}}n.version="1.5.18";var J={arrayUniq:t,uniq:t,arrayUnion:e,union:e,arraySort:r,sort:r,arrayShuffle:i,shuffle:i,arraySample:o,sample:o,arraySome:u,some:u,arrayEvery:a,every:a,arrayFilter:s,filter:s,arrayFind:c,find:c,arrayMap:f,map:f},W=Object.prototype.toString,Y=Array.isArray||function(n){return"[object Array]"===W.call(n)},$=Number.isInteger,B=0,K=v(function(n,t){if(n.indexOf)return n.indexOf(t);for(var e=0,r=n.length;e<r;e++)if(t===n[e])return e}),L=v(function(n,t){if(n.lastIndexOf)return n.lastIndexOf(t);for(var e=n.length-1;e>=0;e--)if(t===n[e])return e;return-1}),z=b,V=function(n){if(n){var t=arguments;if(!0!==n)return Object.assign?Object.assign.apply(Object,t):j(n,t);if(t.length>1)return n=Y(n[1])?[]:{},j(n,t,!0)}return n},X=S,G=M,Q=D,Z=O,_=x,nn={isNaN:isNaN,isFinite:isFinite,isArray:Y,isFloat:function(n){return null!==n&&!isNaN(n)&&!$(n)},isInteger:$,isFunction:l,isBoolean:function(n){return"boolean"==typeof n},isString:y,isNumber:h,isRegExp:function(n){return"[object RegExp]"===W.call(n)},isObject:p,isPlainObject:g,isDate:m,isError:function(n){return"[object Error]"===W.call(n)},isTypeError:function(n){return!!n&&n.constructor===TypeError},isEmpty:function(n){if(0===n||!h(n)){for(var t in n)return!1;return!0}return!1},isNull:function(n){return null===n},isSymbol:d,isArguments:function(n){return"[object Arguments]"===W.call(n)},isElement:function(n){return n&&y(n.nodeName)&&h(n.nodeType)},isDocument:function(n){return n&&9===n.nodeType&&"undefined"!=typeof document},isWindow:function(n){return n&&n===n.window&&"undefined"!=typeof window},isFormData:function(n){return"undefined"!=typeof FormData&&n instanceof FormData},isLeapYear:function(t){var e=(t?n.stringToDate(t):new Date).getFullYear();return e%4==0&&(e%100!=0||e%400==0)},getType:function(n){return null===n?""+n:d(n)?"symbol":m(n)?"date":Y(n)?"array":typeof n},uniqueId:function(){return++B},getSize:function(n){var t=0;return y(n)||Y(n)?n.length:(N(n,function(){t++}),t)},lastIndexOf:L,includes:b,contains:z,objectAssign:V,assign:V,extend:V,stringToJson:function(n){if(p(n))return n;if(y(n))try{return JSON.parse(n)}catch(n){console.error(n)}return{}},jsonToString:function(n){if(p(n))try{return JSON.stringify(n)}catch(n){console.error(n)}return n?""+n:""},objectKeys:S,keys:X,objectValues:M,values:G,objectEntries:D,entries:Q,arrayFirst:O,first:Z,arrayLast:x,last:_,objectEach:E,arrayEach:w,each:N,groupBy:function(n,t,e){var r,i,o={};return n&&(y(t)?(i=t,t=null):t=l(t)?t.bind(e||this):i=null,N(n,function(e,u){r=t?t(e,u,n):i?e[i]:e,o[r]?o[r].push(e):o[r]=[e]})),o},objectMap:function(n,t,e){var r={};return N(n,function(i,o){r[o]=t.call(e||this,i,o,n)}),r},clone:F},tn={browse:function(){var n={};if("undefined"!=typeof document){var t=document.body||document.documentElement;nn.arrayEach(["webkit","khtml","moz","ms","o"],function(e){n["-"+e]=!!t[e+"MatchesSelector"]})}return n}};nn.objectAssign(T,{setItem:function(n,t){T(n,t)},getItem:function(n){return T(n)},removeItem:function(n){T(n,null,{expires:-1})},getJSON:function(){return T()}});var en={cookie:T},rn=Date.now||function(){return(new Date).getTime()},on=[{rules:[["yyyy",4],["yyy",3],["yy",2]]},{rules:[["MM",2],["M",1]],offset:-1},{rules:[["dd",2],["d",1]]},{rules:[["HH",2],["H",1]]},{rules:[["mm",2],["m",1]]},{rules:[["ss",2],["s",1]]},{rules:[["SSS",3],["SS",2],["S",1]]}],un=[["yyyy",31536e6],["MM",2592e6],["dd",864e5],["HH",36e5],["mm",6e4],["ss",1e3],["S",0]],an={timestamp:rn,now:rn,stringToDate:I,dateToString:function(n,t){if(n){if(n=I(n),nn.isDate(n)){var e=["日","一","二","三","四","五","六"],r={"q+":Math.floor((n.getMonth()+3)/3),"M+":n.getMonth()+1,"E+":n.getDay(),"d+":n.getDate(),"H+":n.getHours(),"m+":n.getMinutes(),"s+":n.getSeconds(),S:n.getMilliseconds()},i=String(t||"yyyy-MM-dd HH:mm:ss").replace(/(y+)/,function(t){return(""+n.getFullYear()).substr(4-t.length)});for(var o in r)if(r.hasOwnProperty(o)){var u=""+r[o];i=i.replace(new RegExp("("+o+")"),function(n){return"q+"===o||"E+"===o?e[u]:1===n.length?u:("00"+u).substr(u.length)})}return i}return n}return""},getWhatMonth:R,getWhatWeek:function(n,t,e){var r=Number(/^[0-7]$/.test(e)?e:0),i=I(n),o=i.getDay(),u=i.getTime()+864e5*((0===r?7:r)-(0===o?7:o));return t&&!isNaN(t)&&(u+=6048e5*t),new Date(u)},getWhatDay:function(n,t){return new Date(I(n).getTime()+(t&&!isNaN(t)?864e5*t:0))},getDaysOfMonth:function(n,t){return Math.floor((R(n,t,"last").getTime()-R(n,t,"first").getTime())/864e5)+1},getDateDiff:function(n,t,e){var r={},i=I(n).getTime(),o=t?I(t).getTime():new Date;if(i<o)for(var u,a=o-i,s=e&&e.length>0?e:un,c=0,f=s.length;c<f;c++)a>=(u=s[c])[1]&&(c===f-1?a&&(r[u[0]]=a):(r[u[0]]=Math.floor(a/u[1]),a-=r[u[0]]*u[1]));return r}},sn=null;"undefined"!=typeof location&&(sn=location);var cn={getBaseURL:function(){var n=sn.pathname,t=nn.lastIndexOf(n,"/")+1;return k()+(t===n.length?n:n.substring(0,t))},locat:function(){return sn?{port:sn.port,href:sn.href,host:sn.host,hostname:sn.hostname,protocol:sn.protocol,origin:k(),hash:(sn.hash.split("#")[1]||"").split("?")[0]||"",query:H(sn.hash),params:H(sn.search)}:{}}},fn={getRandom:function(n,t){return n>=t?n:(n>>=0)+Math.round(Math.random()*((t||9)-n))},arrayMin:q,min:q,arrayMax:C,max:C,commafy:function(n,t){var e=nn.objectAssign({spaceNumber:3,separator:",",fixed:0},t),r=parseFloat((""+n).replace(/,/g,"")||0).toFixed(e.fixed).split(".");return r[0].replace(new RegExp("(?=(?!(\\b))(\\d{"+e.spaceNumber+"})+$)","g"),e.separator)+(r[1]?"."+r[1]:"")}},ln={"&":"&","<":"<",">":">",'"':""","'":"'","`":"`"},yn={};nn.arrayEach(nn.objectKeys(ln),function(n){yn[ln[n]]=n});var hn={escape:P(ln),unescape:P(yn)},pn={};return nn.objectAssign(pn,J,nn,tn,en,an,cn,fn,hn),n.mixin=function(t){pn.objectEach(t,function(t,e){n[e]=pn.isFunction(t)?function(){var e=t.apply(n.$context,arguments);return n.$context=null,e}:t})},n.mixin(pn),n}); |
{ | ||
"name": "xe-utils", | ||
"version": "1.5.18", | ||
"version": "1.5.19", | ||
"description": "XEUtils 函数库", | ||
@@ -5,0 +5,0 @@ "main": "index.js", |
@@ -305,3 +305,3 @@ # XEUtils 函数库 | ||
``` | ||
### assign/objectAssign (target, ...) 浅拷贝一个或者多个对象到目标对象中 | ||
### assign/objectAssign/extend ([deep], target, ...) 浅拷贝一个或者多个对象到目标对象中,如果第一值是true,则使用深拷贝 | ||
```shell | ||
@@ -312,4 +312,14 @@ import XEUtils, { objectAssign } from 'xe-utils' | ||
XEUtils.assign(obj1, {a: 11}) // {a: 11} | ||
const obj2 = {c: null} | ||
objectAssign(obj2, {a: 11}, {b: 22}) // {a: 11, b: 22, c: null} | ||
// 浅拷贝 | ||
const obj2 = {a: null} | ||
const obj3 = {bb: {b: 11}} | ||
const obj4 = objectAssign(obj2, {a: 11}) // {a: 11, c: null, bb: {b: 11}} | ||
obj3.bb = 22 // obj4 = {a: 11, c: null, bb: {b: 22}} | ||
// 深拷贝 | ||
const obj2 = {a: null} | ||
const obj3 = {bb: {b: 11}} | ||
const obj4 = XEUtils.extend(true, obj3, {a: 11}) // {a: 11, c: null, bb: {b: 11}} | ||
obj3.bb = 22 // obj4 = {a: 11, c: null, bb: {b: 11}} | ||
``` | ||
@@ -365,12 +375,15 @@ ### stringToJson (str) 字符串转JSON | ||
``` | ||
### each ( obj, iteratee, context ) 迭代器 | ||
### each/objectEach/arrayEach ( obj, iteratee, context ) 迭代器 | ||
```shell | ||
import XEUtils from 'xe-utils' | ||
import XEUtils, { objectEach, arrayEach } from 'xe-utils' | ||
const result = [] | ||
XEUtils.each({a: 11, b: 22}, (item, key) => { | ||
if (key === 'b') { | ||
result.push(item) | ||
} | ||
}) // [22] | ||
// 通用迭代器 | ||
}) | ||
objectEach({a: 11, b: 22}, (item, key) => { | ||
// 对象迭代器 | ||
}) | ||
arrayEach([11, 22, 33], (item, key) => { | ||
// 数组迭代器 | ||
}) | ||
``` | ||
@@ -518,3 +531,3 @@ ### groupBy ( obj, iteratee, context ) 集合分组,默认使用键值分组,如果有iteratee则使用结果进行分组 | ||
XEUtils.stringToDate('12/20/2017', 'MM/dd/yyyy') // Wed Dec 20 2017 00:00:00 GMT+0800 (中国标准时间) | ||
XEUtils.stringToDate('12/20/2017 10:10:30.100', 'MM/dd/yyyy HH:mm') // Wed Dec 20 2017 10:10:00 GMT+0800 (中国标准时间) | ||
XEUtils.stringToDate('2017/12/20 10:10:30', 'yyyy/MM/dd HH:mm') // Wed Dec 20 2017 10:10:00 GMT+0800 (中国标准时间) | ||
XEUtils.stringToDate('12/20/2017 10:10:30.100', 'MM/dd/yyyy HH:mm:ss.SSS') // Wed Dec 20 2017 10:10:30 GMT+0800 (中国标准时间) | ||
@@ -614,2 +627,11 @@ ``` | ||
### commafy ( num, options ) 数值千分位分隔符、小数点 | ||
```shell | ||
import XEUtils from 'xe-utils' | ||
XEUtils.commafy(1000000) // 千分位格式化 1,000,000 | ||
XEUtils.commafy(1000000, {fixed: 2}) // 格式化金额 1,000,000.00 | ||
XEUtils.commafy(1234123412341234, {spaceNumber: 4, separator: ' ', fixed: 0}) // 格式化银行卡 1234 1234 1234 1234 | ||
``` | ||
### escape ( str ) 转义HTML字符串,替换&, <, >, ", ', `字符 | ||
@@ -616,0 +638,0 @@ ```shell |
@@ -5,4 +5,4 @@ 'use strict' | ||
XEUtils.version = '1.5.18' | ||
XEUtils.version = '1.5.19' | ||
module.exports = XEUtils |
@@ -347,2 +347,12 @@ 'use strict' | ||
function extend (target, args, isClone) { | ||
for (var source, index = 1, len = args.length; index < len; index++) { | ||
source = args[index] | ||
arrayEach(objectKeys(args[index]), function (key) { | ||
target[key] = isClone ? clone(source[key], isClone) : source[key] | ||
}) | ||
} | ||
return target | ||
} | ||
/** | ||
@@ -355,9 +365,12 @@ * 浅拷贝一个或者多个对象到目标对象中 | ||
*/ | ||
var objectAssign = Object.assign || function (target) { | ||
var objectAssign = function (target) { | ||
if (target) { | ||
for (var source, index = 1, len = arguments.length; index < len; index++) { | ||
source = arguments[index] | ||
arrayEach(objectKeys(arguments[index]), function (key) { | ||
target[key] = source[key] | ||
}) | ||
var args = arguments | ||
if (target === true) { | ||
if (args.length > 1) { | ||
target = isArray(target[1]) ? [] : {} | ||
return extend(target, args, true) | ||
} | ||
} else { | ||
return Object.assign ? Object.assign.apply(Object, args) : extend(target, args) | ||
} | ||
@@ -367,4 +380,2 @@ } | ||
} | ||
var assign = objectAssign | ||
var extend = objectAssign | ||
@@ -608,2 +619,3 @@ /** | ||
isString: isString, | ||
isNumber: isNumber, | ||
isRegExp: isRegExp, | ||
@@ -631,4 +643,4 @@ isObject: isObject, | ||
objectAssign: objectAssign, | ||
assign: assign, | ||
extend: extend, | ||
assign: objectAssign, | ||
extend: objectAssign, | ||
stringToJson: stringToJson, | ||
@@ -635,0 +647,0 @@ jsonToString: jsonToString, |
@@ -45,2 +45,15 @@ 'use strict' | ||
/** | ||
* 千分位分隔符、小数点 | ||
* | ||
* @param {String/Number} num 数值 | ||
* @param {Object} 参数 {separator: 分隔符, fixed: 小数位数} | ||
* @return {String} | ||
*/ | ||
function commafy (num, options) { | ||
var opts = baseExports.objectAssign({spaceNumber: 3, separator: ',', fixed: 0}, options) | ||
var result = parseFloat(('' + num).replace(/,/g, '') || 0).toFixed(opts.fixed).split('.') | ||
return result[0].replace(new RegExp('(?=(?!(\\b))(\\d{' + opts.spaceNumber + '})+$)', 'g'), opts.separator) + (result[1] ? '.' + result[1] : '') | ||
} | ||
var numberExports = { | ||
@@ -51,5 +64,6 @@ getRandom: getRandom, | ||
arrayMax: arrayMax, | ||
max: max | ||
max: max, | ||
commafy: commafy | ||
} | ||
module.exports = numberExports |
107351
2658
707