2016-08-22 91 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' ] ]