Просмотр полной версии : Поиск элемента в ArrayCollection
GrMerlin
17.10.2010, 21:21
Каким образом можно найти нужный элемент в переменной типа ArrayCollection, если известно только одно поле объекта (а их, к примеру, несколько). Или, возможно, есть идеи по поводу как адаптировать метод contains под необходимые условия?
больше на filterFunction походит.
Использую что-то вроде этого для небольших массивов и коллекций, для больших лучше писать что-то специальное:
public class ArrayUtil
{
...
public static function findObject(fieldName:String, value:Object,array:Object):Object
{
var index:int = getItemIndex(fieldName,value,array);
if(index < 0)
return null;
if(array is ICollectionView || array is IList)
return array.getItemAt(index);
else
return array[index];
}
public static function getItemIndex(fieldName:String,value:Object,array:Object):int
{
if(!array)
return -1;
if(array is IList)
array = IList(array).toArray();
for( var i:int = 0; i < array.length; i++)
{
var item:Object = array[i];
if(!fieldName && item == value)
return i;
if(fieldName && item.hasOwnProperty(fieldName) && item[fieldName] == value)
return i;
}
return -1;
}
...
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.