JavaScript 按月对项目列表进行排序

标签 javascript

我正在玩 js 脚本。如何按月对列表项目进行排序。最好的方法是什么?

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" } }
        ];

最佳答案

您可以按照正确的顺序列出所有月份,并根据它们对数组进行排序:

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",
  	        "July", "August", "September", "October", "November", "December"];
  arr.sort(function(a, b){
      return months.indexOf(a.values.Month.displayValue)
           - months.indexOf(b.values.Month.displayValue);
  });
}

关于JavaScript 按月对项目列表进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37349331/

相关文章:

javascript - JS Intellisense 不适用于 VS2012 中的外部 URL 文件

javascript - Angular 4 : changing url, 但未呈现组件

javascript - 如何在两个不同的 HTML 文件之间共享 HTML 标记?

javascript - 处理 HTTP 状态 Ajax 响应

javascript - 无法使用 jenkins 作业发布 node.js 包

javascript - 你如何在客户端处理复杂的 JavaScript 对象?

javascript - 下拉从列表中删除空白项

php - 如何创建这种类型的index.php? (网站 map ?)

javascript - Dust.js 部分未找到

javascript - AngularJs 服务/提供者 Getter