2016-08-22 12 views
0

配列の1列で複雑な配列の並べ替えをソートする必要があります。私はそれがChapterでソートしたいので、結果はJavascript配列内の要素で並べ替え

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

になります。しかし、私はarray.sortをすれば、それはなるだろうarray = [["Banana","Chapter3"], ["Orange","Chapter2"], ["Apple","Chapter1"]];

のようにたとえば、この配列が見えるかもしれません

[["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' ] ] 
関連する問題