如何从Javascript中的对象列表中获取不同的年份
我在Javascript中得到了以下对象,我想返回一个与如何从Javascript中的对象列表中获取不同的年份,javascript,arrays,object,distinct,Javascript,Arrays,Object,Distinct,我在Javascript中得到了以下对象,我想返回一个与createdOn值不同的年份列表: 我尝试了以下操作,但它返回一个空数组: const things=[{ “id”:1, “标题”:“第一件事”, “createdOn”:“2017-12-07T15:44:50.123” }, { “id”:2, “头衔”:“第二件事”, “createdOn”:“2018-05-07T09:10:24.123” }, { “id”:3, “头衔”:“第三件事”, “createdOn”:“2018
createdOn
值不同的年份列表:
我尝试了以下操作,但它返回一个空数组:
const things=[{
“id”:1,
“标题”:“第一件事”,
“createdOn”:“2017-12-07T15:44:50.123”
},
{
“id”:2,
“头衔”:“第二件事”,
“createdOn”:“2018-05-07T09:10:24.123”
},
{
“id”:3,
“头衔”:“第三件事”,
“createdOn”:“2018-12-07T12:07:50.123”
},
{
“id”:4,
“头衔”:“第四件事”,
“createdOn”:“2018-12-07T16:39:29.123”
}
]
console.log(things.map(thing=>newdate(thing.createdOn).getFullYear()).filter((value,index,self)=>self.indexOf(value)==index))
您在调用.map()
时使用了拼写错误的参数,即用事件替换thing
。您还可以使用Set
获取唯一值:
const数据=[
{“id”:1,“标题”:“第一件事”,“createdOn”:“2017-12-07T15:44:50.123”},
{“id”:2,“title”:“第二件事”,“createdOn”:“2018-05-07T09:10:24.123”},
{“id”:3,“title”:“第三件事”,“createdOn”:“2018-12-07T12:07:50.123”},
{“id”:4,“title”:“第四件事”,“createdOn”:“2018-12-07T16:39:29.123”}
];
const result=[…新集合(data.map(event=>newdate(event.createdOn.getFullYear()))];
控制台日志(结果)代码>使用映射参数中的thing
而不是event
,即things.map(thing=>)
您的代码将正常工作。我的打字错误新日期(thing.createdOn)
->新日期(event.createdOn)
啊,你比我先到了!设定无疑是一条路要走。