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"});
});
转载于:https://my.oschina.net/u/1773772/blog/667725