배열 컬렉션 정렬을 살펴 보았습니다. 지금까지 오름차순 및 내림차순으로 숫자를 정렬하는 것과 같은 것을 보았습니다. 내가 찾고있는 다른 배열의 값의 순서에 따라 arraycollection을 정렬 멀리 발견하는 것입니다. 예flex의 배열 값을 기반으로 배열 컬렉션 정렬
:
I 10의 수치를 포함하는 배열을 갖는다. 나는 또한 arraycollection을 가지고있다. 각 arracycollection 항목의 속성 중 하나는 이전 배열의 값 중 하나에 해당합니다.
배열의 값 순서에 따라 arraycollection을 정렬 할 수 있기를 원합니다.
가장 좋은 방법은 무엇입니까?
첫 번째 배열을 반복하면서 그 값으로 arraycollection의 항목을 찾은 다음 새 arraycollection에 추가했지만 첫 번째 값은 점점 길어지는 것처럼 보였습니다. 그것은 영리한 방법입니다.
편집
이것은 내가 지금까지 함께 재현 한 것입니다. 그래도 조금 둥근 것 같아.
private function parseXML(xml:XML):void
{
var s:String=xml.toXMLString()
artistinfo=convertXmlToArrayCollection(s)
sort()
dispatchEvent(new XMLEvent(XMLEvent.XML_PARSED))
//artistinfo.sort()
}
private function clone(source:Object):*
{
var myBA:ByteArray=new ByteArray();
myBA.writeObject(source);
myBA.position=0;
return (myBA.readObject());
}
private function sort():void
{
var myAC:ArrayCollection=new ArrayCollection(clone(artistinfo.source));
//artistinfo=new ArrayCollection();
var amt:int=trackids.length;
var value:Number=0
var arr:*
var index:Number
for (var i:int=0; i < amt; i++)
{
value=trackids[i];
index=getItemIndexByProperty(myAC, "id", new String(value))
artistinfo[i]=myAC.getItemAt(index)
}
}
public function getItemIndexByProperty(array:ArrayCollection, property:String, value:String):Number
{
for (var i:Number=0; i < array.length; i++)
{
var obj:Object=Object(array[i])
if (obj[property].value == value)
return i;
}
return -1;
}