U.Entity.js 6.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162
  1. //Namespace.register("U.E"); //JSON操作的命名空间
  2. //U.E.Entity = function (JT, EW) { } //实体
  3. ////方法原型 实际上呢我让Object基础了这一些属性 有好处有坏处 好处就是每一个Object操作方便 不好就是基础的太大 实际上我们只要Object(Json) Array拥有 个人认为我们需要改写js内核 写入专门Json对象
  4. ////实体方法
  5. //U.E.Entity = function (JT, EW) { }
  6. //U.E.Entity.prototype = {
  7. // "Add": function (V) {//添加有添加集合的 有添加数组的
  8. // var _T = U.M.GetType(this);
  9. // if (_T == "Array") { this.push(V); } //数组的添加方法 因为数组有自带的方法 就直接添加
  10. // else { for (var i in V) { if (V.hasOwnProperty(i)) { this[i] = V[i] } } } //对象的添加方法
  11. // },
  12. // "Delete": function (V) {
  13. // var _T = U.M.GetType(this);
  14. // if (_T == "Object") { delete this[V]; } //删除集合
  15. // else if (_T == "Array") {
  16. // _T = U.M.GetType(_T);
  17. // if (_T == "int") { this.splice(V, 1); } //删除数组的一个
  18. // else if (_T == "Array") { this.splice(V[0], V[1]); } //删除多个
  19. // else if (_T == "Object") { for (var i = 0; i < this.length; i++) { if (this[i][V["key"]] == V["value"]) { this.splice(i, 1); } } } //删除数组里的集合
  20. // }
  21. // },
  22. // "Select": function (V, FT) {//查找一个 支持多条件 V为集合{"key1":"value1","key2":"value2"......} 多条件的搜索
  23. // var i, j, C;
  24. // var _T = U.M.GetType(this);
  25. // if (_T == "Object") {
  26. // _T = U.M.GetType(V);
  27. // if (FT) { if (_T == "Object") { if (this.IsTF(V)) { C = this; } else { C = this[FT].Select(V, FT); } } }
  28. // else { C = this[V]; } //直接获取值 这个没有多大必要 就等于 {数据}["key"]
  29. // }
  30. // else if (_T == "Array") {//数组的搜索
  31. // C = [];
  32. // for (i = 0; i < this.length; i++) {
  33. // if (this[i].IsTF(V)) { C.push(this[i]); }
  34. // }
  35. // if (C.length == 0 && FT) { for (i = 0; i < this.length; i++) { this[i].Select(V); } } //跨层次搜索
  36. // }
  37. // return C;
  38. // },
  39. // "IsTF": function (V) {//判断集合是否匹配
  40. // var _T = false;
  41. // for (j in V) {//多条件的搜索
  42. // if (V.hasOwnProperty(j)) {
  43. // if (V[j] == this[j]) { _T = true; }
  44. // else { return false; }
  45. // }
  46. // }
  47. // return _T; //返回是否正确
  48. // },
  49. // "First": function () { //获取数组里第一个集合
  50. // return this[0];
  51. // },
  52. // "Change": function (V) {//改变值
  53. // var i, j;
  54. // var _T = U.M.GetType(this);
  55. // if (_T == "Object") {
  56. // for (var i in V) {
  57. // if (V.hasOwnProperty(i)) {
  58. // this[i] = V[i];
  59. // }
  60. // }
  61. // }
  62. // else if (_T == "Array") {
  63. // for (i = 0; i < this.length; i++) {
  64. // if (V["value"] == this[i][V["key"]]) {
  65. // for (j in V["ck"]) {
  66. // if (V["ck"].hasOwnProperty(j)) {
  67. // this[i][j] = V["ck"][j];
  68. // }
  69. // }
  70. // }
  71. // }
  72. // }
  73. // },
  74. // "List": function (ET) {//生成一个一样的实体
  75. // var _C; //得到的值
  76. // var _T = U.M.GetType(ET);
  77. // if (_T == "Object") {
  78. // _C = {};
  79. // for (var i in ET) {
  80. // if (ET.hasOwnProperty(i)) {
  81. // _C[i] = List(ET[i]);
  82. // }
  83. // }
  84. // return _C;
  85. // }
  86. // else if (_T == "Array") {
  87. // _C = [];
  88. // for (var i = 0; i < ET.length; i++) {
  89. // _C[i] = List(ET[i]);
  90. // }
  91. // return _C;
  92. // }
  93. // else { return ""; }
  94. // },
  95. // "Merger": function () {//合并整个数组分支
  96. // var _T = U.M.GetType(this);
  97. // var _C = [];
  98. // if (_T == "Object") {
  99. // for (var i in this) { if (this.hasOwnProperty(i)) { _C = _C.concat(this[i].Merger()); return _C; } }
  100. // }
  101. // else if (_T == "Array") {
  102. // for (var i = 0; i < this.length; i++) {
  103. // if (this[i] != null) { _C = _C.concat(this[i].Merger()); }
  104. // }
  105. // return _C;
  106. // }
  107. // return this;
  108. // },
  109. // "CIndex": function (V) {//创建索引 这里的方法值得我们去思考
  110. // }
  111. //}
  112. //U.E.E = new U.E.Entity();
  113. ////U.M.Setprototype(Object, U.E.E); //让所有的属性都有增删查改 包括了字符串 数组 集合 函数 所以需要改写for in循环
  114. //for (var i in U.E.E) {//让window下拥有这些方法
  115. // (function (j) {
  116. // window[j] = function (T, ARM) {
  117. // (ARM = [ARM]); //转化成数组
  118. // U.E.E[j].apply(T, ARM);
  119. // }
  120. // })(i)
  121. //}
  122. ////实例
  123. ////US.User = { "UserId": "", "UserName": "", "Userkey": "", "Disk": { "c": "e" }, "Blog": [{ "a": "d", "b": "e"}] };
  124. ////创建一个新的列表
  125. ////var _e = new List(US.User);
  126. ////添加数据
  127. ////US.User.Disk.Add({ "a": "b" }); //相当于 US.User.Disk["a"] = US.User.Disk["b"]
  128. ////US.User.Blog.Add({ "a": "d", "b": "d" });
  129. ////删除数据
  130. ////US.User.Disk["Delete"]("a");
  131. ////查找数据
  132. ////var _a = US.User.Blog.Select({ "a": "d", "b": "e" }); //这个适用于数组条件搜索
  133. ////var _a=US.User.Select({ "a": "d", "b": "e" });//这个还没做。。。。。。。。。。。。。。。
  134. ////var _r = US.User.Disk.Select({ "c": "g" }, "next"); //这个适用户集合搜索
  135. ////修改数据
  136. ////US.User.Disk.Change({ "c": "a" });
  137. ////US.User.Blog.Change({ "key": "b", "value": "e", "ck": { "a": "c"} });
  138. ////备注:
  139. ////1、另外建立一个干劲的处理json的文件,和这个文件分开?
  140. ////2、json要能找到父亲节点。
  141. ////3、json要能找到父亲节点所在的数组。
  142. ////4、json要能找到指定节点id
  143. ////5、json要能找到指定节点所在的数组。
  144. ////6、json要能添加孩子结点。
  145. ////7、json要能添加兄弟节点。
  146. ////8、json属性的遍历。
  147. ////9、删除拥有某一样属性所有节点,例如在编程树中,有些元素标记了删除,则不选取这些节点出来。
  148. ////10、清空数组。可以搜索一下清空数组的三个方案