AS3 Vector.sort()不采用排序选项?

Rob*_*cks 6 sorting flash actionscript-3

在AS3中,Array.sort()采取了一些很好的排序选项,如:

  • Array.DESCENDING - 将数组从大到小排序
  • Array.RETURNINDEXEDARRAY - 返回一个索引数组,以便您可以跟踪哪个项目已在哪里排序

但遗憾的Vector<T>.sort()是不支持这些功能,只需要compareFunction:Function参数,这样您就可以编写自己的排序逻辑.

有没有其他方法可以快速获取向量的排序索引数组?

Bar*_*klı 8

查看文档:http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/Vector.html#sort()

仍然可以使用这些选项,但您必须将它们作为第一个参数而不是比较函数传递.

 myVector.sort(Array.DESCENDING|Array.RETURNINDEXEDARRAY);
Run Code Online (Sandbox Code Playgroud)

  • 是的,我正在阅读文档页面上的注释,发现:"与Array类不同,Vector.sort()方法似乎忽略了Array.RETURNINDEXEDARRAY选项.返回的Vector对象始终是原始对象的引用. " (2认同)

Rob*_*cks 5

RETURNINDEXEDARRAY在Flash Player 10+中不起作用.它只返回相同的原件Vector<Number>.

与Array不同,RETURNINDEXEDARRAYVector.sort()方法将忽略该选项.返回的Vector对象始终是原始对象的引用.