Ext.onReady(function(){ //6.10 Ext.util.MixedCollection 集合類 //1. add(String key,Object o)向集合加入對象 var item1 = new Ext.util.MixedCollection(); var item2 = new Ext.util.MixedCollection(); var a = {"name":"a"}, b = {"name":"b"}; item1.add("01",a); item1.add("01",b);//覆蓋了上面的01key item2.add("01",a); item2.add("02",a); item2.add("03",b); console.info("item1的長度:"+item1.length+";item2的長度:"+item2.length); //2. addAll()將數組中的對象加入到集合中 var item3 = new Ext.util.MixedCollection(); var arr = []; arr.push({name:'a'}); arr.push({name:'b'}); console.info("item3的長度:"+item3.length); item3.addAll(arr); console.info("添加數組中的對象後item3的長度:"+item3.length); //3. clear()移除集合中的對象 item3.clear(); console.info("移除集合中的對象後item3的長度:"+item3.length); //4. clone() 克隆集合 var col = new Ext.util.MixedCollection(); col = item2.clone(); console.info("克隆集合item2後col集合的長度:"+col.length); //5. 匹配集合中關聯對象 //contains(Obj o) : Boolean; 包含該對象返回true,不然false //containsKey(String key) : Boolean var c = {"name":"c"}; console.info("item2中是否存在對象c:"+item2.contains(c)); console.info("item2中是否存在以02爲索引的關聯對象:"+item2.containsKey("02")); console.info("item2中是否存在以04爲索引的關聯對象:"+item2.containsKey("04")); //6. each()迭代集合中的對象調用指定的方法 item2.each(function(tempObj){ //tempObj.name = 'newA'; console.info('經過調用後的名稱爲:'+tempObj.name); }); //7. 獲取集合中的對象 //first()獲取第一個對象 get(String/Number key) 根據key獲取value console.info("items2中第一個對象的name: "+item2.first().name); console.info("items2中以03爲key對象的name: "+item2.get("03").name); //8. 其餘有用的方法 console.info("item2集合對象的個數是:"+item2.getCount()); //console.info("指定對象的索引:"+item2.getKey(b)); console.info("根據對象指定對象的下標:"+item2.indexOf(b)); console.info("根據索引指定對象的下標:"+item2.indexOfKey('03')); console.info("根據索引或者下標取的對象:"+item2.get("03").name); console.info("根據下標取的對象:"+item2.getAt(2).name); console.info("根據索引獲取對象:"+item2.getByKey("03").name); item2.remove(b); item2.removeAt(0); //item2.removeAtKey('02'); console.info("移除b對象後item2的長度:"+item2.getCount()); //replace() 替換對象 //item2.replace("02",{"name":"cRep"}); console.info(item2.get("02").name); //sort()排序對象 //sum()對集合進行求和 //9. 該類中的事件 //add 添加對象觸發該事件 item2.on('add',function(index,o,key){ console.info("index:"+index+",name:"+o.name+",key:"+key); }); item2.add("zhangsan",{"name":"張三"}) //clear 清除全部對象時的事件 //remove 移除指定對象時的事件 item2.on("remove",function(o,key){ console.info("移除對象的name:"+o.name+",key:"+key); }); //item2.remove(a); //replase 替換對象時的事件 item2.on('replace',function(key,oldO,newO){ console.info("old的name:"+oldO.name+",new的name:"+newO.name); }); item2.replace("02",{"name":"ccccc"}); });