1、查找指定元素
方法一:自己写方法找到指定元素的索引。
- private function checkExistence(arrc:ArrayCollection,auserName:String):int
- {
- var i:int;
- var arry:Array = arrc.source;
- while(i < arry.length)
- {
- if(arry[i].userName == userName)
- {
- return i;
- }
- i++;
- }
- return -1;
- }
方法二:使用Sort对象。
- private function checkExistence(userName:String):int
- {
- var sort:Sort = new Sort();
- return sort.findItem(arrc.source,{userName:userName},
- Sort.ANY_INDEX_MODE);
- }
Sort 对象提供findItem 方法用于搜索这个ArrayCollection 中的所有元素。方法原型如下:
public function findItem(items:Array, values:Object, mode:String,
returnInsertionIndex:Boolean = false, compareFunction:Function = null):int
Value 参数可以是包含属性和所需值的任何对象。Mode 字符串可以是
Sort.ANY_INDEX_MODE,表示返回任何匹配项索引,Sort.FIRST_INDEX_MODE 表示返回第一个匹配项索引, Sort.LAST_INDEX_MODE 表示返回最后一个匹配项索引。returnInsertionIndex 参数表示如果该方法找不到由values 参数标识的项目,并且此参数为true,则findItem() 方法将返回这些值的插入点,也就是排序顺序中应插入此项目的
compareFunction 设置用于查找该项目的比较运算符函数.
2、修改指定元素:
(1):
- var index:int = checkExistence( "BK1" );
- var object :Object = arrc.getItemAt(index);
- object [ "age" ] = age;
- arrc.itemUpdated( object );
(2):
- var index:int = checkExistence( "BK1" );
- var object :Object = arrc.getItemAt(index);
- object [ "age" ] = age;
- arrc.setItemAt(object,index);
(3):
- var index:int = checkExistence( " BK1 " );
- arrc .source[index].age = age;