У меня есть таблица с столбцом месяца и года. Как мне отсортировать дату и год. Пожалуйста, проверьте скрипку.
В этом случае формат даты - «ММММ гггг». Мое требование, например,
если моя дата - «август 2016», «сентябрь 2015» и «январь 2018». Здесь я хочу отсортировать дату по году. Итак, результат должен быть таким: «Сентябрь 2015 г.», «Август 2016 г.» и «Январь 2018 г.».
Как я могу сделать это в angularjs.
var app = angular.module('app', [])
.controller('appController', appController);
appController.$inject = ['$scope', '$window'];
function appController($scope, $window) {
$scope.title = "date sorting example";
$scope.sortType = "name";
$scope.sortReverse = true;
var dateA = new Date("02/06/2016");
dateA.setDate(dateA.getDate() + 2);
var dateB = new Date("07/06/2017");
dateB.setDate(dateB.getDate() + 4);
var dateC = new Date("08/06/2016");
dateC.setDate(dateC.getDate() + 7);
var dateD = new Date("04/06/2018");
dateD.setDate(dateD.getDate() + 20);
$scope.allItems = [{
date: dateA,
name: "A"
}, {
date: dateB,
name: "B"
}, {
date: dateC,
name: "C"
}, {
date: dateD,
name: "D"
}];
};<div ng-controller = "appController">
<h1>This is my {{title}}</h1>
<table class = "table table-striped">
<thead>
<td data-ng-click = "sortType = name; sortReverse = !sortReverse;">
Date
</td>
<td data-ng-click = "sortType = name; sortReverse = !sortReverse;">
Name
</td>
</thead>
<tbody>
<tr ng-repeat = "item in allItems">
<td>{{item.date | date:"MMMM yyyy"}}</td>
<td>{{item.name}}</td>
</tr>
</tbody>
</table>
</div>


![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Используйте Array.sort
var dateA = new Date("02/06/2016");
dateA.setDate(dateA.getDate() + 2);
var dateB = new Date("07/06/2017");
dateB.setDate(dateB.getDate() + 4);
var dateC = new Date("08/06/2016");
dateC.setDate(dateC.getDate() + 7);
var dateD = new Date("04/06/2018");
dateD.setDate(dateD.getDate() + 20);
let allItems = [{date: dateA,name: "A"}, {date: dateB,name: "B"}, {date: dateC,name: "C"}, {date: dateD,name: "D"}];
allItems.sort((a,b) => a.date - b.date);
console.info(allItems);