2013-10-11 177 views
-1

的自定義排序,我想使用的第一個元素的每個子陣列中的以下數組排序:多元素嵌套列表

lst = [[1, 2], [5, 4], [4, 9], [9, 1], [2,2]] 

我想對此列表進行排序,使它看起來像這樣:

srt_lst = [[1, 2], [2,2], [4, 9], [5, 4], [9, 1]]; 

我該如何在純javascript中做到這一點? (無外部庫,下劃線等?)

回答

0

的Array.sort方法需要一個比較函數作爲可選參數,

您可以指定一個這樣的:

function compare(a, b) { .... }

所以使用匿名函數,你可以做這樣的:

lst.sort(function(a,b) { 
    if (a[0] < b[0]) return -1; 
    if (b[0] < a[0]) return 1; 

    return 0; 
}); 

注意:雖然排序返回數組排序,它也作用於一個如果你需要保持原有的lst數組的原始順序,這是值得注意的,你可能需要在執行排序操作之前先進行克隆。