123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162 |
- //Namespace.register("U.E"); //JSON操作的命名空间
- //U.E.Entity = function (JT, EW) { } //实体
- ////方法原型 实际上呢我让Object基础了这一些属性 有好处有坏处 好处就是每一个Object操作方便 不好就是基础的太大 实际上我们只要Object(Json) Array拥有 个人认为我们需要改写js内核 写入专门Json对象
- ////实体方法
- //U.E.Entity = function (JT, EW) { }
- //U.E.Entity.prototype = {
- // "Add": function (V) {//添加有添加集合的 有添加数组的
- // var _T = U.M.GetType(this);
- // if (_T == "Array") { this.push(V); } //数组的添加方法 因为数组有自带的方法 就直接添加
- // else { for (var i in V) { if (V.hasOwnProperty(i)) { this[i] = V[i] } } } //对象的添加方法
- // },
- // "Delete": function (V) {
- // var _T = U.M.GetType(this);
- // if (_T == "Object") { delete this[V]; } //删除集合
- // else if (_T == "Array") {
- // _T = U.M.GetType(_T);
- // if (_T == "int") { this.splice(V, 1); } //删除数组的一个
- // else if (_T == "Array") { this.splice(V[0], V[1]); } //删除多个
- // else if (_T == "Object") { for (var i = 0; i < this.length; i++) { if (this[i][V["key"]] == V["value"]) { this.splice(i, 1); } } } //删除数组里的集合
- // }
- // },
- // "Select": function (V, FT) {//查找一个 支持多条件 V为集合{"key1":"value1","key2":"value2"......} 多条件的搜索
- // var i, j, C;
- // var _T = U.M.GetType(this);
- // if (_T == "Object") {
- // _T = U.M.GetType(V);
- // if (FT) { if (_T == "Object") { if (this.IsTF(V)) { C = this; } else { C = this[FT].Select(V, FT); } } }
- // else { C = this[V]; } //直接获取值 这个没有多大必要 就等于 {数据}["key"]
- // }
- // else if (_T == "Array") {//数组的搜索
- // C = [];
- // for (i = 0; i < this.length; i++) {
- // if (this[i].IsTF(V)) { C.push(this[i]); }
- // }
- // if (C.length == 0 && FT) { for (i = 0; i < this.length; i++) { this[i].Select(V); } } //跨层次搜索
- // }
- // return C;
- // },
- // "IsTF": function (V) {//判断集合是否匹配
- // var _T = false;
- // for (j in V) {//多条件的搜索
- // if (V.hasOwnProperty(j)) {
- // if (V[j] == this[j]) { _T = true; }
- // else { return false; }
- // }
- // }
- // return _T; //返回是否正确
- // },
- // "First": function () { //获取数组里第一个集合
- // return this[0];
- // },
- // "Change": function (V) {//改变值
- // var i, j;
- // var _T = U.M.GetType(this);
- // if (_T == "Object") {
- // for (var i in V) {
- // if (V.hasOwnProperty(i)) {
- // this[i] = V[i];
- // }
- // }
- // }
- // else if (_T == "Array") {
- // for (i = 0; i < this.length; i++) {
- // if (V["value"] == this[i][V["key"]]) {
- // for (j in V["ck"]) {
- // if (V["ck"].hasOwnProperty(j)) {
- // this[i][j] = V["ck"][j];
- // }
- // }
- // }
- // }
- // }
- // },
- // "List": function (ET) {//生成一个一样的实体
- // var _C; //得到的值
- // var _T = U.M.GetType(ET);
- // if (_T == "Object") {
- // _C = {};
- // for (var i in ET) {
- // if (ET.hasOwnProperty(i)) {
- // _C[i] = List(ET[i]);
- // }
- // }
- // return _C;
- // }
- // else if (_T == "Array") {
- // _C = [];
- // for (var i = 0; i < ET.length; i++) {
- // _C[i] = List(ET[i]);
- // }
- // return _C;
- // }
- // else { return ""; }
- // },
- // "Merger": function () {//合并整个数组分支
- // var _T = U.M.GetType(this);
- // var _C = [];
- // if (_T == "Object") {
- // for (var i in this) { if (this.hasOwnProperty(i)) { _C = _C.concat(this[i].Merger()); return _C; } }
- // }
- // else if (_T == "Array") {
- // for (var i = 0; i < this.length; i++) {
- // if (this[i] != null) { _C = _C.concat(this[i].Merger()); }
- // }
- // return _C;
- // }
- // return this;
- // },
- // "CIndex": function (V) {//创建索引 这里的方法值得我们去思考
- // }
- //}
- //U.E.E = new U.E.Entity();
- ////U.M.Setprototype(Object, U.E.E); //让所有的属性都有增删查改 包括了字符串 数组 集合 函数 所以需要改写for in循环
- //for (var i in U.E.E) {//让window下拥有这些方法
- // (function (j) {
- // window[j] = function (T, ARM) {
- // (ARM = [ARM]); //转化成数组
- // U.E.E[j].apply(T, ARM);
- // }
- // })(i)
- //}
- ////实例
- ////US.User = { "UserId": "", "UserName": "", "Userkey": "", "Disk": { "c": "e" }, "Blog": [{ "a": "d", "b": "e"}] };
- ////创建一个新的列表
- ////var _e = new List(US.User);
- ////添加数据
- ////US.User.Disk.Add({ "a": "b" }); //相当于 US.User.Disk["a"] = US.User.Disk["b"]
- ////US.User.Blog.Add({ "a": "d", "b": "d" });
- ////删除数据
- ////US.User.Disk["Delete"]("a");
- ////查找数据
- ////var _a = US.User.Blog.Select({ "a": "d", "b": "e" }); //这个适用于数组条件搜索
- ////var _a=US.User.Select({ "a": "d", "b": "e" });//这个还没做。。。。。。。。。。。。。。。
- ////var _r = US.User.Disk.Select({ "c": "g" }, "next"); //这个适用户集合搜索
- ////修改数据
- ////US.User.Disk.Change({ "c": "a" });
- ////US.User.Blog.Change({ "key": "b", "value": "e", "ck": { "a": "c"} });
- ////备注:
- ////1、另外建立一个干劲的处理json的文件,和这个文件分开?
- ////2、json要能找到父亲节点。
- ////3、json要能找到父亲节点所在的数组。
- ////4、json要能找到指定节点id
- ////5、json要能找到指定节点所在的数组。
- ////6、json要能添加孩子结点。
- ////7、json要能添加兄弟节点。
- ////8、json属性的遍历。
- ////9、删除拥有某一样属性所有节点,例如在编程树中,有些元素标记了删除,则不选取这些节点出来。
- ////10、清空数组。可以搜索一下清空数组的三个方案
|