문제

나는 Flex의 다음 사전을 가지고 있으며 Id는 값으로 정렬하고 싶습니다. 리소스를 찾을 수 없었습니다.

'1'=>2, '0' =>1, '3'=>4 ..

어떤 아이디어? 이것을 값으로 어떻게 정렬 할 수 있습니까?

도움이 되었습니까?

해결책

아마도 가장 좋은 방법은 아니지만 작동합니다.

var a:Array = new Array();
for each (var v:Number in dict)
{
  a.push(v);
}

a.sort();

다른 팁

사전 맵을 정렬하고 키 값 쌍과 관련된 정렬 된 컬렉션을 반환해야한다는 점을 제외하고는 비슷한 솔루션을 검색했습니다. 게시 된 솔루션을 찾지 못한 후 아래의 접근 방식을 정리했습니다. 이 메소드는 입력으로 사전을 가져 가고 연결을 유지 관리하는 배열을 생성 한 다음 array.sorton ()을 사용하여 결과 배열을 정렬하고 정렬 된 결과를 배열로 다시 반환합니다. 아래 예제의 배열의 "키"및 "값"필드는 명확성을 위해 사용되지만 모든 필드 이름을 사용할 수 있습니다.

이 예제는 문자열 객체를 키로 및 숫자 객체를 값으로 가정하지만 물론 모든 객체 유형을 사용할 수 있고 필드 매개 변수는 조정됩니다.

아래의 접근 방식은 Sorton 메소드의 정렬 필드로 "키"를 사용하여 값 대신 키로 정렬하는 데 사용될 수 있으며 여기에서 사용한 하강 숫자 정렬과 다른 정렬 옵션을 사용할 수 있습니다. as3 sorton () 문서) 아래 코드는 의도적으로 예를 들어 단순화하기위한 비 게 니체입니다.

      public static function sortDictionaryByValue(d:Dictionary):Array
        {
          var a:Array = new Array();
          for (var dictionaryKey:Object in d)
          {
            a.push({key:dictionaryKey,value:d[dictionaryKey]});
          }
          a.sortOn("value",[Array.NUMERIC|Array.DESCENDING]);
          return a;
        }   
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top