123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409 |
-
- window.JSON = window.JSON || (function () {
- var JSON = function () { };
- U.Ut.AddObj(JSON, {
- stringify: function (UDE) {
- return U.MS.jsonToStr(UDE);
- },
- parse: function (UDE) {
- return UDE.parseJSON();
- }
- });
- return JSON;
- })();
- U.Json = function () {
- var _um = U.M;
-
- var _UME, _UFE = function (UDE, UPE) {
-
- if (this.init == _UME.init) {
- this.init(UDE, UPE);
- }
-
- else {
- return new _UME.init(UDE, UPE);
- }
- },
- cb = function (UTP) {
- return function (UDE) {
- if (UTP == null) { return UDE; }
- else if (U.Ut.isFunction(UTP)) { return UTP.apply(null, arguments); }
- else if (U.Ut.isObject(UTP)) { return _UME.IfExists(UTP, UDE); }
- return UDE[UTP];
- }
- },
-
- maxAndmin = function (UDE, UCE, UII, UTP) {
- if (UDE) {
- var _USE = -Infinity, _UNE = -Infinity, _UCB = cb(UCE);
- UDE.forEach(function (UVE, UI) {
- var _UKE = _UCB.call(UII, UVE, UI, UDE), _UTF = (UTP == "max" && _UKE > _UNE) || (UTP == "min" && _UKE < _UNE);
- if (_UTF || (_USE === _UNE && _UNE === -Infinity)) { _UNE = _UKE; _USE = UVE; }
- });
- return _USE;
- }
- else { throw new Error("数组异常"); }
- };
-
- _UFE.prototype = _UME = {
- init: function (UDE, UPE) {
- this.Value = UDE;
- this.Parent = UPE || window;
- },
- Clone: function (UDE) {
- var i, _UCE; UDE = UDE || this.Value;
- if (U.Ut.isObject(UDE)) {
- _UCE = new UDE.constructor();
- if (U.Ut.isArray(_UCE)) { for (i = 0; i < UDE.length; i++) { _UCE.push(arguments.callee(UDE[i])); } }
- else { for (i in UDE) { if (UDE.hasOwnProperty(i)) { _UCE[i] = arguments.callee(UDE[i]); } } }
- return _UCE;
- }
- return UDE;
- },
- Add: function (UCE) {
- var i;
- var _UDE = this.Value;
-
- if (!U.Ut.isArray(_UDE)) {
- for (i in UCE) {
- if (UCE.hasOwnProperty(i)) {
- _UDE[i] = UCE[i];
- }
- }
- }
-
- else {
- for (i = 0; i < _UDE.length; i++) {
- U.Ut.AddObj(_UDE[i], UCE);
- }
- }
- return this.Value;
- },
- FindOne: function (UCE, UKE) {
- return (this.Select(UCE, UKE, 1))[0];
- },
- invoke: function (UN, UDE) {
- var _UT = this; (UDE) && (_UT = _$(UDE));
- if (_UT[UN]) { return _UT[UN](); }
- },
- sort: function (UCE, UVE, UDE) {
- UDE = UDE || this.Value; var _UKE, _UTF = U.M.GetType(UDE); (U.Ut.isString(UCE)) && (_UKE = {}, _UKE[UCE] = 1, UCE = _UKE);
- if (_UTF === "array") {
- (UDE.sort(function (UO, UT) {
- var i, _UIE, _UTF;
- if (U.Ut.isFunction(_UTF)) { _UTF = UCE(UO, UT); }
- else if (U.Ut.isObject(UCE)) {
- for (i in UCE) { if (UCE.hasOwnProperty(i)) { _UTF = typeof (UO[i] || UT[i] || ""); _UTF = _um["ci" + _UTF.capitalizeFirstLetter()](UO[i], UT[i]); _UIE = UCE[i]; break; } }
- }
- else { _UTF = UO > UT; } _UIE = _UIE || (UVE == -1 ? -1 : 1); return _UIE * ((_UTF == 1 || _UTF == true) ? 1 : -1);
- }));
- return UDE;
- }
- else { throw new Error(UDE + " is not an Array"); }
- },
- groupBy: function (UCE, UDE) {
- var _USE = {}, _UCB = cb(UCE); UDE = UDE || this.Value;
- UDE.forEach(function (UVE, UI) { var _UKE = _UCB(UVE); (_USE[_UKE] == null) && (_USE[_UKE] = []); _USE[_UKE].push(UVE); });
- return _USE;
- },
- pluck: function (UCE, UDE) {
- var _USE = []; UDE = UDE || this.Value;
- if (!UDE.length) { _USE.push(UDE[UCE]); } else {
- UDE.forEach(function (UVE, UI) {
- var _UCB = cb(UCE);
- _USE.push(_UCB(UVE, UI, UDE));
- });
- }
- return _USE;
- },
- Where: function (UCE, UT, UDE, USE) {
- UDE = UDE || this.Value; var i, j, k, z, _UGE, _UKE, _UFE, _UTE, _UTF = U.M.GetType(UDE); USE = USE || [];
- if (_UTF === "object") {
- _UTF = []; for (i in UCE) {
- if (UCE.hasOwnProperty(i)) {
- _UGE = UCE;
- _UTF = [];
- _UTE = false;
- switch (i) { case "$or": _UGE = UCE[i]; _UTE = true; break; }
- _UFE: for (j in _UGE) {
- if (_UGE.hasOwnProperty(j)) {
- _UKE: for (k in _UGE[j]) {
- if (_UGE[j].hasOwnProperty(k)) {
- switch (j) {
- case "$e": _UTF.push(UDE[k] == _UGE[j][k]); break;
- case "$ne": _UTF.push(UDE[k] != _UGE[j][k]); break;
- case "$lt": _UTF.push(UDE[k] < _UGE[j][k]); break;
- case "$lte": _UTF.push(UDE[k] <= _UGE[j][k]); ; break;
- case "$gt": _UTF.push(UDE[k] > _UGE[j][k]); break;
- case "$gte": _UTF.push(UDE[k] >= _UGE[j][k]); break;
- case "$in": for (z = 0; z < _UGE[j][k].length; z++) { if (_UGE[j][k][z] == UDE[k]) { _UTF.push(true); break; } } _UTF = !_UTF; break;
- case "$nin": for (z = 0; z < _UGE[j][k]; z++) { if (_UGE[j][k][z] == UDE[k]) { continue _UKE; } } _UTF.push(true); break;
- case "$all": for (z = 0; z < _UGE[j][k]; z++) { if (_UGE[j][k][z] != UDE[k]) { continue _UKE; } } _UTF.push(true); break;
- case "$exists": break;
- case "$mod": break;
- case "$not": break;
- }
- }
- }
- }
- }
- }
- if ((_UTE === true && _UTF.indexOf(true) > -1) || (_UTF.indexOf(false) == -1)) { USE.push(UDE); }
- }
- }
- else if (_UTF == "array") {
- for (i = 0; i < UDE.length; i++) { if (USE.length == UT) { break; } this.Where(UCE, UT, UDE[i], USE); }
- }
- return USE;
- },
- Select: function (UCE, UKE, UT, USE, UDE) {
- var i, _UTF; USE = USE || []; UDE = arguments.length > 4 ? UDE : this.Value;
- if (U.Ut.isArray(UDE)) { for (i = 0; i < UDE.length; i++) { if (USE.length == UT) { break; } this.Select(UCE, UKE, UT, USE, UDE[i]); } }
- else {
- if (this.IfExists(UCE, UDE)) { USE.push(UDE); }
- if (UKE === true) { for (i in UDE) { if (USE.length == UT) { break; }; if (U.M.GetType(UDE[i]) == "object") { _$(UDE[i], this).Select(UCE, UKE, UT, USE); } } }
- else if (UKE) { if (USE.length != UT && UDE[UKE]) { _$(UDE[UKE], this).Select(UCE, UKE, UT, USE); }; }
- }
- return USE;
- },
- Change: function (UCE, UDE) {
- var i, _UDE = arguments.length > 1 ? UDE : this.Value, _UTF = U.M.GetType(_UDE);
- if (_UTF == "object") { for (i in UCE) { if (UCE.hasOwnProperty(i)) { _UDE[i] = UCE[i]; } } }
- else if (_UTF == "array") { for (i = 0; i < _UDE.length; i++) { this.Change(UCE, _UDE[i]); } }
- return _UDE;
- },
-
-
-
-
- Delete: function (obj, key, data) {
- var i, _deldata;
- data = data || this.Value;
- var _type = U.M.GetType(data);
- var _delarray = [];
- if (_type == "object") {
- if (this.IfExists(obj, data)) {
- delete data;
- _delarray.push(data);
- }
- else if (key === true) {
- for (i in data) {
- _deldata = this.Delete(obj, key, data[i]);
- _delarray = _delarray.concat(_deldata);
- }
- }
- else if (key && data[key]) {
- _deldata = this.Delete(obj, key, data[key]);
- _delarray = data.concat(_deldata);
- }
- }
-
- else if (_type === "array") {
- for (i = 0; i < data.length; i++) {
-
- _deldata = this.Delete(obj, key, data[i]);
- if (_deldata.length) {
- data.splice(i, 1);
- _delarray = _delarray.concat(_deldata);
- i--;
- }
- }
- }
- return _delarray;
- },
- RecurD: function (UCE, UKE, UTP) {
- var _UAE, _UGE, i = UCE ? (_UGE = [UCE], 0) : (_UGE = [], -1), _UDE = this.Value;
- if (U.Ut.isArray(_UDE)) {
- for (; i < _UGE.length; i++) {
- if (i > -1) { for (j in UKE) { UKE[j] = _UGE[i][UTP]; } }
- _UAE = _$(_UDE).Select(UKE)[0]; (_UAE) && (_UGE.push(_UAE));
- }
- }
- else {
- while (_UGE[4][UKE]) { _UDE.push(_UGE[4][_UPID]); _UPID = _UGE[4][i]["UserDirectoryParentID"] }
- }
- return _UGE;
- },
- NL: function (UCE, USE) {
- var i, _UDE = this.Value;
- for (i = 0; i < UCE.length; i++) { _UDE[UCE[i]] = USE[i]; }
- return _UDE;
- },
- Reset: function (UCE) {
- var i, _UDE = this.Value;
- for (i = 0; i < _UDE.length; i++) { if (this.IfExists(UCE, _UDE[i])) { _UDE.unshift(_UDE.splice(i, 1)[0]); } }
- return _UDE;
- },
- Like: function (UCE, UT, UKE, USE) {
- var i, _US, _UE, _UDE = this.Value, _UTF = U.M.GetType(_UDE); USE = USE || [];
- if (_UTF == "object") {
- for (i in UCE) {
- if (UCE.hasOwnProperty(i)) {
- if (_UDE[i] != UCE[i]) {
- if (typeof _UDE[i] == "object" || typeof _UDE[i] == "object") { return; }
- _US = (_UDE[i] + "").toLocaleLowerCase(); _UE = (UCE[i] + "").toLocaleLowerCase();
- if (!(_US.indexOf(_UE) > -1 || _UE.indexOf(_US) > -1)) { return; }
- }
- }
- }
- USE.push(_UDE);
- }
- else if (_UTF === "array") { for (i = 0; i < _UDE.length; i++) { _$(_UDE[i], this).Like(UCE, UT - USE.length, UKE, USE); if (USE.length >= UT) { USE.splice(UT, USE.length); break; } } }
- return USE;
- },
- GZDL: function (UCE, UDE) {
- var i, _UKE = {}, _UDE = this.Value;
- (U.Ut.isString(UCE)) && (UCE = [UCE]);
- for (i = 0; i < UCE.length; i++) { _UKE[UCE[i]] = _UDE[UCE[i]]; }
- return _UKE;
- },
-
-
- IfExists: function (UCE, UDE) {
- var i, _UTF;
- UDE = UDE || this.Value;
-
- if (UDE === UCE) {
- return true;
- }
-
- for (i in UCE) {
- if (UCE.hasOwnProperty(i)) {
- if (UDE[i] === UCE[i]) {
- _UTF = true;
- }
- else {
- _UTF = false;
- break;
- }
- }
- }
- return _UTF;
- },
- Merger: function (UDE) {
- UDE = UDE || this.Value; var i, _USE = [], _UTP = U.M.GetType(this.Value);
- if (_UTP == "object") { for (i in UDE) { if (UDE.hasOwnProperty(i)) { _USE = _USE.concat(UDE[i]); } } }
- else if (_UTP == "array") { for (i = 0; i < UDE.length; i++) { _USE = _USE.concat(UDE[i]); } }
- return _USE;
- },
- ToString: function () { return U.MS.jsonToStr(this.Value); },
- Each: function (UCB, UDE) {
- if (U.Ut.isFunction(UCB)) {
- UDE = UDE || this.Value;
- var i, _UTF = U.M.GetType(UDE);
- if (_UTF == "object") {
- for (i in UDE) {
- (UDE.hasOwnProperty(i)) && (UCB(UDE[i], i, UDE));
- }
- }
- else if (_UTF === "array") {
- Array.forEach(function () {
- UCB.apply(UDE, arguments);
- });
- }
- }
- return this;
- },
-
- max: function (UCE, UTI, UDE) {
- maxAndmin(UDE || this.Value, UCE, UTI, "max");
- },
- min: function () {
- maxAndmin(UDE || this.Value, UCE, UTI, "min");
- },
- object: function (UCE, UDE) {
- var i, _USE = {}; UDE = UDE || this.Value;
- for (i = 0; i < UCE.length; i++) { return _USE[UCE[i]] = UDE[i]; }
- return _USE;
- },
- countBy: function (UFE, UDE) {
- UDE = UDE || this.Value; var i, _UTF, _USE = {}, _UTP = U.M.GetType(UDE);
- if (_UTP == "array") { for (i = 0; i < UDE.length; i++) { _USE[UFE(UDE[i])] = (_USE[UFE(UDE[i])] || 0) + 1; } }
- else { throw new Error(UDE + " is not an Array"); }
- },
- where: function (UCE, UDE) {
- var i = 0, _USE = []; UDE = UDE || this.Value;
- while (i++ < _UDE.length) { (this.IfExists(UCE, UDE)) && (_USE.push(UDE[i])); }
- return _USE;
- },
- count: function () {
- return this.Value.length;
- },
- distinct: function () {
- },
- find: function () {
- },
- each: function () { },
- has: function (UCE, UDE) {
- UDE = UDE || this.Value; var i;
- if (typeof UCE == "string") { if (UCE in UDE && UDE.hasOwnProperty(UCE)) { return true; } }
- else { for (i in UCE) { if (!(i in UDE && UDE.hasOwnProperty(i))) { return false; } } return true; } return false;
- },
- range: function (US, UE, UT) {
- var _UDE = [], i = US || 0, _UL = (UE - US); UT = UT || (UE - US) > 0 ? 1 : -1;
- if (_UL) {
- _UL = Math.max(Math.ceil(_UL /= UT), 0);
- for (i = 0; i < _UL; i++) { US += UT; _UDE.push(US); }
- }
- return _UDE;
- },
- isEqual: function (UCE, UDE) {
- UDE = UDE || this.Value; var i, _UTP = U.M.GetType(UDE), _UFE = Object.prototype.toString.call;
- if (_UFE(UDE) === _UFE(UCE)) {
- if (_UTP == "object") { return (this.IfExists(UCE, UDE) && this.IsTF(UDE, UCE)); }
- else if (_UTP == "array" && UDE.length == UCE.length) { i = UDE.length; while (i--) { if (!this.isEqual(UDE[i], UCE[i])) { return false; } } }
- return true;
- }
- return false;
- },
- isMatch: function (UCE, UDE) {
- UDE = UDE || this.Value; var i, _UTP = U.M.GetType(UDE);
- if (_UTP == "object") { return this.IfExists(UCE); }
- throw new Error("参数必须为对象");
- }
- }
- _UME.IsTF = _UME.IfExists;
- _UME.init.prototype = _UME;
- return _UFE;
- }
|