2016-08-22 98 views
0

我需要按數組的一列對複雜的數組排序。Javascript排序陣列內的元素

例如,該陣列可能看起來像

array = [["Banana","Chapter3"], ["Orange","Chapter2"], ["Apple","Chapter1"]];

我希望通過Chapter進行排序,因此結果將是

array = ["Apple","Chapter1"],["Orange","Chapter2"],["Banana","Chapter3"]] 

但如果我這樣做array.sort,它將成爲

[["Apple","Chapter1"],["Banana","Chapter3"],["Orange","Chapter2"]] 

它似乎排序第一個元素的ASCII碼。我如何按數組中的特定元素排序?

我還創建了一個JSfiddle來說明我的想法。

+3

http://stackoverflow.com/questions/16096872/how-to-sort-2-dimensional-array-by-column-value。最佳答案可爲您的問題提供解決方案。 – DVJex

回答

0

你需要一個比較傳遞給sort

var array = [["Banana","Chapter3"], ["Orange","Chapter2"], ["Apple","Chapter1"]]; 

var sorted = array.sort(function (a, b) { 
    if (a[1] > b[1]) { 
    return 1; 
    } else if (a[1] < b[1]) { 
    return -1; 
    } else { 
    return 0; 
    } 
}); 

console.log(sorted); 

// [ [ 'Apple', 'Chapter1' ], 
// [ 'Orange', 'Chapter2' ], 
// [ 'Banana', 'Chapter3' ] ]