2012-06-20 56 views
6

Trong AS3, Array.sort() mất một số tùy chọn sắp xếp tốt đẹp như:AS3 Vector.sort() không có tùy chọn sắp xếp?

  • Array.DESCENDING - sắp xếp các mảng lớn đến nhỏ
  • Array.RETURNINDEXEDARRAY - trả về một mảng của các chỉ số, do đó bạn có thể theo dõi mà mục đã được sắp xếp nơi

Nhưng đáng buồn là Vector<T>.sort() không hỗ trợ các tính năng này, và chỉ cần tham số compareFunction:Function để bạn có thể ghi nợ của mình n phân loại logic.

Có cách nào khác để nhanh chóng nhận được một mảng được sắp xếp theo chỉ mục của một véc-tơ không?

Trả lời

4

RETURNINDEXEDARRAY không hoạt động trong Flash Player 10+. Nó chỉ trả lại cùng một bản gốc Vector<Number>.

Không giống như một mảng, RETURNINDEXEDARRAY tùy chọn bị bỏ qua cho phương thức Vector.sort(). Đối tượng Vector trả về luôn là tham chiếu của đối tượng gốc.

8

Kiểm tra các tài liệu hướng dẫn: http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/Vector.html#sort()

Nó vẫn còn có thể sử dụng những tùy chọn nhưng bạn phải vượt qua họ trong tham số đầu tiên thay vì so sánh chức năng.

myVector.sort(Array.DESCENDING|Array.RETURNINDEXEDARRAY); 
+0

Mảng.RETURNINDEXEDARRAY không hoạt động đối với tôi. Nó chỉ trả về cùng một Vector gốc

+2

Vâng tôi đã đọc các nhận xét trên trang tài liệu và tìm thấy điều này: "Không giống như một lớp Array, tùy chọn Array.RETURNINDEXEDARRAY dường như bị bỏ qua cho phương thức Vector.sort(). đối tượng luôn là tham chiếu của đối tượng gốc. " –

+0

Cũng hãy cẩn thận rằng đối số thứ hai trong phương thức slice không phải là tùy chọn, mặc dù các tài liệu. –

Các vấn đề liên quan