Сортировать массив по дате в подчеркивании. js - PullRequest
0 голосов
/ 09 апреля 2020

Я использую Coffescript, подчеркивание. js, нокаут, и я пытаюсь отсортировать массив по дате, но по какой-то причине он не работает

let accounts = [
  {
    id: 101,
    content: "abc1",
    createdDate: "2015-12-22T00:00:00"
  },
  {
    id: 102,
    content: "abc2",
    createdDate: "2012-12-22T00:00:00"
  }

]

Так я написал код в coffeescript

_.sortBy(accounts, (a) ->  a.createdDate)

Тот же сгенерированный код в JS

return this.accounts(_.sortBy(accounts, function(a) {
      return a.createdDate;
    }));

Пожалуйста, дайте мне знать, где я иду не так. Я не получаю никакой ошибки, но массив не сортируется по дате.

1 Ответ

1 голос
/ 09 апреля 2020

Ваш синтаксис JSON недопустим и отсутствует свойство createdDate, оно должно выглядеть следующим образом:

accounts = [
  {
    id: 102,
    content: "abc",
    createdDate: "2015-12-22T00:00:00"
  }
]

Таким образом, вы можете использовать функцию, как вы написали (используйте => вместо ->).

Рабочий пример:

let accounts = [
  {
    id: 101,
    content: "abc1",
    createdDate: "2015-12-22T00:00:00"
  },
  {
    id: 102,
    content: "abc2",
    createdDate: "2012-12-22T00:00:00"
  },
  {
    id: 103,
    content: "abc3",
    createdDate: "2018-12-22T00:00:00"
  }
]

accounts = _.sortBy(accounts, (a) =>  a.createdDate)
console.log(accounts)
<script src="https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.9.1/underscore.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.4.2/knockout-min.js"></script>

Конечно, id и content являются лишь примером.

...