Как отсортировать месяц и год в angularjs

У меня есть таблица с столбцом месяца и года. Как мне отсортировать дату и год. Пожалуйста, проверьте скрипку.

В этом случае формат даты - «ММММ гггг». Мое требование, например,

если моя дата - «август 2016», «сентябрь 2015» и «январь 2018». Здесь я хочу отсортировать дату по году. Итак, результат должен быть таким: «Сентябрь 2015 г.», «Август 2016 г.» и «Январь 2018 г.».

Как я могу сделать это в angularjs.

jsfiddle

   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>
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
0
333
1

Ответы 1

Используйте 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);

Другие вопросы по теме