AS3数值排序?

时间:2011-07-09 05:34:14

标签: flash flex actionscript-3 sorting

var dataArray:Array = [ 5, 6, 3, 8, 10, 11, 32, 2 ];
var dataObjectArray:Array [ { "uid": 5 }, { "uid": 6 .... Similar to above ... } ];

我在AS3中有以上2个数组。并且我希望按顺序对它们进行排序(1~X)[跳过不存在的那些]。对于dataArray / dataObjectArray来说,最好和最有效的方法是什么。

您可以解决1或两者=)

3 个答案:

答案 0 :(得分:14)

你试过了吗?

dataArray.sort(  Array.NUMERIC );
dataObjectArray.sortOn( ["uid"], [Array.NUMERIC]); 

答案 1 :(得分:6)

令人惊讶的是,as3具有内置功能。<​​/ p>

 dataArray.sort(Array.NUMERIC);
 dataObjectArray.sortOn("uid", Array.NUMERIC);

这将优雅地给出所需的效果:升序是默认的。数组文档包含其他详细信息,例如降序/等...如果提供了字段值,Lol sortOn甚至会对嵌套对象/数组进行排序。

答案 2 :(得分:0)

const email = "ragedog@hotmail.com";
const regex = new RegExp("(?=[a-z0-9@.!#$%&'*+\/=?^_`{|}~-]{6,254})(?=[a-z0-9.!#$%&'*+\/=?^_`{|}~-]{1,64}@)[a-z0-9!#$%&'*+\/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+\/=?^_`{|}~-]+)*@(?:(?=[a-z0-9-]{1,63}\.)[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+(?=[a-z0-9-]{1,63})[a-z0-9](?:[a-z0-9-]*[a-z0-9])?", "gm");

console.log(regex.test(email));

将自动识别您是否要对数字或字符串进行排序并对数组进行排序。 但是后来我做了一些愚蠢的事情。我的数组包含数字作为字符串,然后当它们是数字时,如果数字的位数不同,则排序效果不佳。 因此,成功的解决方案是一个很好的答案:

dataArray.sort();

如果您想要倒序(降序而不是升序),则在排序调用后:

dataArray.sort(  Array.NUMERIC );
dataObjectArray.sortOn( ["uid"], [Array.NUMERIC]);

干杯!