2016-05-20 67 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); 
 
    }); 
 
}

相關問題