在Javascript中的數組,如果我有一個數組的數組,如下所示:使用JavaScript來排序數字數組
X = [ [1,2,3,4],
[1,1,2,3],
[1,1,3],
[1,4],
[2,1,2],
[2,2]
]
的Javascript排序我的陣列,首先比較第一個條目,然後第二個,依此類推,以便X.sort()
返回以下內容:
[ [1,1,2,3],
[1,1,3],
[1,2,3,4],
[1,4],
[2,1,2],
[2,2]
]
這就是我想要的。的問題是,在陣列比較元件比較操作符是辭書,所以[10,2] < [2,2]
,和,例如,
[[10,2],[1,1,3],[2,2]].sort() -> [[1,1,3],[10,2],[2,2]]
我需要它數字排序,使得我得到的[[1,1,3],[2,2],[10,2]]
排序後的數組。
我嘗試使用的function(a,b){return (a-b) }
比較功能,這將排序數字數組的工作,但是這未能正確排序我的陣列,這是有道理的(我認爲),因爲[10,2] - [1,1,3]
產量NaN
我如何去排序數組數組?
如果您更改比較函數以說明傳遞參數是數組的事實,它應該可以工作。 http://jsfiddle.net/SYHr2/ – Rikonator
@Rikonator偉大的解決方案,你可能想張貼作爲答案,它似乎工作 – Ian
@Rikonator太棒了!使用不會覆蓋自然的.sort方法的超薄功能,爲我提供所需的排序功能。如果你把它寫成答案,我會接受它。 – ckersch