作者gg90052 (Teddy)
看板Flash
标题[问题] 关於Flash的排序
时间Thu May 7 03:20:22 2009
function sort(array:Array):Object
{
array.sort(16);
return array.pop();
}
我想要寻找出阵列里面最大的数字,请问这样写有错吗?
因为我sort出来的结果很奇怪
sort前:0,8,36,0,34,0,39,86,
sort後:0,0,34,36,39,8,86
而我预期的结果应该是0,0,8,34,36,39,86
用sort(16)他会先比较十位数字,再比个位数字
但是如果没有十位数字的话,他会把那个个位数当成十位数字来比
有办法做单纯的数字排序吗?
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 118.160.180.6
1F:→ edsger:var sortedArray:Array = array.sort(16); 05/07 04:57
2F:→ edsger:return sortedArray.pop(); 05/07 04:58
3F:→ edsger:有使用16 (Array.NUMERIC)就是数字排序而不是字串排序了 05/07 05:00
4F:→ edsger:只不过sort不会改变目标阵列,而是回传新的排序後振烈 05/07 05:01
※ 编辑: gg90052 来自: 118.160.180.6 (05/07 09:39)
6F:推 easy1:顺便问一下 我在使用Array.NUMERIC 排序的时候 如果阵列中 05/07 19:31
7F:推 easy1:有 undefined 的值 它会给我Error 是不是只能给它一个自订 05/07 19:33
8F:→ easy1:排序的function 让它忽略 undefined 05/07 19:33
10F:→ cjcat2266:另外,sort()会改变阵列本身 05/07 20:06
11F:→ cjcat2266:回传的东西会依情况而定,同样请见上面的连结 05/07 20:06
12F:→ edsger:的确sort会改变目标阵列的值 前面误导各位请多包含 m(_ _)m 05/07 20:23
13F:→ edsger:gg90052如果还是不行的话 检查一下 1.指定阵列内容物 05/07 20:25
14F:→ edsger:2.进行排序 3.取得排序後结果 这几个时间点的阵列内容 05/07 20:26
15F:→ edsger:或是提供这些部分的完整程式码 会比较有足够的线索来抓 05/07 20:27
16F:→ gg90052:感谢大家帮忙.....最後发现原来是我自己脑残.... 05/08 01:40
17F:→ gg90052:我是送入的一串数字split,放进阵列的时候忘记转成数字了. 05/08 01:41