Javascript 反应本机分区列表拆分日期
我需要重新格式化我的日期对象,我有一个这样格式的日期数组:Javascript 反应本机分区列表拆分日期,javascript,reactjs,react-native,Javascript,Reactjs,React Native,我需要重新格式化我的日期对象,我有一个这样格式的日期数组: Object { "FREETIME": "2021-04-19 11:30:00", }, Object { "FREETIME": "2021-04-19 12:00:00", }, Object { "FREETIME": "2021-04-20 12:30:00",
Object {
"FREETIME": "2021-04-19 11:30:00",
},
Object {
"FREETIME": "2021-04-19 12:00:00",
},
Object {
"FREETIME": "2021-04-20 12:30:00",
},
Object {
"FREETIME": "2021-04-21 12:50:00",
},
我想在分区列表中呈现它们,如下所示:
const DATA = [
{
title: "2021-04-19",
data: ["11:30:00", "12:00:00"]
},
{
title: "2021-04-20",
data: ["12:30:00"]
},
{
title: "2021-04-21",
data: ["12:50:00"]
},
];
因此,我要做的是首先将空闲时间的数组按天数和时间进行拆分:
const dates = data.map((item) => item.FREETIME.split(" "));
然后我得到节列表的节头的唯一天数:
function onlyUnique(value, index, self) {
return self.indexOf(value) === index;
}
const days = dates.map((item) => item[0]).filter(onlyUnique);
然后我尝试用天和相应的时间构建新的对象数据,但未能正确映射时间:
const DATA = days.map((dayHeader) => ({
title: dayHeader,
data: //don't know how to map it properly here
}));
我做错了什么,或者有其他方法吗?下面是一种使用Array.prototype.reduce做这项工作的方法
const arrayOfObjectDates=[
{
“自由时间”:“2021-04-19 11:30:00”,
},
{
“自由时间”:“2021-04-19 12:00:00”,
},
{
“自由时间”:“2021-04-20 12:30:00”,
},
{
“自由时间”:“2021-04-21 12:50:00”,
}
];
const DATA=arrayOfObjectDates.reduce((op,{FREETIME})=>{
var[date,time]=FREETIME.split(“”),{result,index}=op;
if(索引hasOwnProperty(日期)){
结果[索引[日期]].data.push(时间);
}否则{
索引[日期]=result.length;
push({title:date,data:[time]});
}
返回op;
},{result:[],index:{});
console.log(数据)