集合類MixedCollection

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"});
    
    
});
相關文章
相關標籤/搜索