javascript - 如何从 Javascript 中的对象列表中获取不同的年份

标签 javascript arrays object distinct

我在 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))

我在这里错过了什么?

非常感谢。

最佳答案

您在 .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);

关于javascript - 如何从 Javascript 中的对象列表中获取不同的年份,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53702934/

相关文章:

javascript - 当另一个项目添加到数组时从数组中删除项目

javascript - 在 JavaScript 中对存储在数组中的数字求和

java - 如何将 JSON 字符串转换为 GSON 对象?

java - 一个对象如何从另一个类中创建的对象调用方法

javascript - 如何只接受按字母顺序按下的键(用于 "autocomplete"目的)

javascript - Angular 中的干净 URL

java - 递归时出现StackOverflow错误如何处理?

python - 用数组索引 Numpy 数组

javascript - 内容菜单和打开选项卡的问题 - Chrome 扩展

javascript - 在 HTML 中向下滚动时将导航栏移动到顶部