Как получить отчетливый год из списка объектов в Javascript - PullRequest
0 голосов
/ 10 декабря 2018

У меня есть следующий объект в Javascript, и я хотел бы вернуть список различных лет из значения createdOn:

Я пробовал следующее, но он возвращает пустой массив:

const things = [{
    "id": 1,
    "title": "First thing",
    "createdOn": "2017-12-07T15:44:50.123"
  },
  {
    "id": 2,
    "title": "Second thing",
    "createdOn": "2018-05-07T09:10:24.123"
  },
  {
    "id": 3,
    "title": "Third thing",
    "createdOn": "2018-12-07T12:07:50.123"
  },
  {
    "id": 4,
    "title": "Forth thing",
    "createdOn": "2018-12-07T16:39:29.123"
  }
]

console.log(things.map(thing => new Date(thing.createdOn).getFullYear()).filter((value, index, self) => self.indexOf(value) === index))

Что мне здесь не хватает?

Большое спасибо заранее.

1 Ответ

0 голосов
/ 10 декабря 2018

Вы используете аргумент с ошибкой в ​​обратном вызове .map(), т.е. замените thing на event.Вы также можете использовать Set для получения уникальных значений:

const data = [
  {"id": 1, "title": "First thing", "createdOn": "2017-12-07T15:44:50.123"}, 
  {"id": 2, "title": "Second thing", "createdOn": "2018-05-07T09:10:24.123"}, 
  {"id": 3, "title": "Third thing", "createdOn": "2018-12-07T12:07:50.123"}, 
  {"id": 4, "title": "Forth thing", "createdOn": "2018-12-07T16:39:29.123"}
];

const result = [...new Set(data.map(event => new Date(event.createdOn).getFullYear()))];

console.log(result);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...