2016-05-20 9 views
0

私はjsスクリプトで遊んでいます。リストのアイテムを数か月でソートする方法。それを行う最善の方法は何ですか?JavaScript並べ替えアイテム数月ごと

var dataCollection = [ 
     { values: { Month: { displayValue: "August" }, Sum: "10" } }, 
     { values: { Month: { displayValue: "February" }, Sum: "25" } }, 
     { values: { Month: { displayValue: "July" }, Sum: "35" } } 
    ]; 

私はあなたがそれらに基づいて正しい順序ですべての月のリストを持って、あなたの配列をソートすることによってそれを行うことができます

dataCollection = [ 
      { values: { Month: { displayValue: "February" }, Sum: "25" } }, 
      { values: { Month: { displayValue: "July" }, Sum: "35" } }, 
      { values: { Month: { displayValue: "August" }, Sum: "10" } } 
     ]; 
+0

これらの「月」を最高から最低まで比較する必要があります。文字列の値は役に立ちません。おそらく月を表す整数? – Neal

答えて

3

得ることを期待:

var dataCollection = [ 
 
    { values: { Month: { displayValue: "August" }, Sum: "10" } }, 
 
    { values: { Month: { displayValue: "February" }, Sum: "25" } }, 
 
    { values: { Month: { displayValue: "July" }, Sum: "35" } } 
 
]; 
 

 
sortByMonth(dataCollection); 
 

 
console.log(dataCollection); 
 

 
function sortByMonth(arr) { 
 
    var months = ["January", "February", "March", "April", "May", "June", 
 
    \t   "July", "August", "September", "October", "November", "December"]; 
 
    arr.sort(function(a, b){ 
 
     return months.indexOf(a.values.Month.displayValue) 
 
      - months.indexOf(b.values.Month.displayValue); 
 
    }); 
 
}

関連する問題