[問題] 關於Flash的排序

看板Flash作者 (Teddy)時間16年前 (2009/05/07 03:20), 編輯推噓3(3014)
留言17則, 4人參與, 最新討論串1/1
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

05/07 04:57, , 1F
var sortedArray:Array = array.sort(16);
05/07 04:57, 1F

05/07 04:58, , 2F
return sortedArray.pop();
05/07 04:58, 2F

05/07 05:00, , 3F
有使用16 (Array.NUMERIC)就是數字排序而不是字串排序了
05/07 05:00, 3F

05/07 05:01, , 4F
只不過sort不會改變目標陣列,而是回傳新的排序後振烈
05/07 05:01, 4F

05/07 05:04, , 5F
http://0rz.tw/w5Kqd (Flex3 Ref.) 陣列
05/07 05:04, 5F
※ 編輯: gg90052 來自: 118.160.180.6 (05/07 09:39)

05/07 19:31, , 6F
順便問一下 我在使用Array.NUMERIC 排序的時候 如果陣列中
05/07 19:31, 6F

05/07 19:33, , 7F
有 undefined 的值 它會給我Error 是不是只能給它一個自訂
05/07 19:33, 7F

05/07 19:33, , 8F
排序的function 讓它忽略 undefined
05/07 19:33, 8F

05/07 20:04, , 9F
可,請參考 http://0rz.tw/k4jdw 的compareFunction
05/07 20:04, 9F

05/07 20:06, , 10F
另外,sort()會改變陣列本身
05/07 20:06, 10F

05/07 20:06, , 11F
回傳的東西會依情況而定,同樣請見上面的連結
05/07 20:06, 11F

05/07 20:23, , 12F
的確sort會改變目標陣列的值 前面誤導各位請多包含 m(_ _)m
05/07 20:23, 12F

05/07 20:25, , 13F
gg90052如果還是不行的話 檢查一下 1.指定陣列內容物
05/07 20:25, 13F

05/07 20:26, , 14F
2.進行排序 3.取得排序後結果 這幾個時間點的陣列內容
05/07 20:26, 14F

05/07 20:27, , 15F
或是提供這些部分的完整程式碼 會比較有足夠的線索來抓
05/07 20:27, 15F

05/08 01:40, , 16F
感謝大家幫忙.....最後發現原來是我自己腦殘....
05/08 01:40, 16F

05/08 01:41, , 17F
我是送入的一串數字split,放進陣列的時候忘記轉成數字了.
05/08 01:41, 17F
文章代碼(AID): #1A0UBvDt (Flash)