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