[英]Javascript - convert array to object based on specific data from array
0: {todo: "go for a walk", todoData: "Thu Jan 14 2021", todoId: "kjr4ianh"}
1: {todo: "asdqwe", todoData: "Sun Jan 10 2021", todoId: "kjrg2wwv"}
2: {todo: "asdqwe", todoData: "Sun Jan 10 2021", todoId: "kjrg2xxb"}
我想基於todoData
。 我希望它是這樣的:
{
Sun-Jan-10-2021: {
todo: {todo: "asdqwe", todoId: "kjrg2wwv"}
todo: {todo: "asdqwe", todoId: "kjrg2xxb"}
}
Thu-Jan-14-2021: {
todo: {todo: "go for a walk", todoId: "kjr4ianh"}
}
}
有什么建議嗎?
您預期的 output 無效json
,您可以將相同日期的項目分組如下:
const data = [ {todo: "go for a walk", todoData: "Thu Jan 14 2021", todoId: "kjr4ianh"}, {todo: "asdqwe", todoData: "Sun Jan 10 2021", todoId: "kjrg2wwv"}, {todo: "asdqwe", todoData: "Sun Jan 10 2021", todoId: "kjrg2xxb"} ]; const res = data.reduce((acc,item) => { const { todoData, ...itemData } = item; const prev = acc[todoData]; acc[todoData] = prev? [...prev, itemData]: [itemData]; return acc; }, {}); console.log(res);
我們不能在 object 中擁有相同值的多個鍵,因此按日期分組。
const data = [
{todo: "go for a walk", todoData: "Thu Jan 14 2021", todoId: "kjr4ianh"},
{todo: "asdqwe", todoData: "Sun Jan 10 2021", todoId: "kjrg2wwv"},
{todo: "asdqwe", todoData: "Sun Jan 10 2021", todoId: "kjrg2xxb"}
];
const transformed = {};
data.forEach(elem => {
if(!transformed[elem.todoData]) {
transformed[elem.todoData] = []
}
transformed[elem.todoData].push({
todoId: elem.todoId,
todo: elem.todo
})
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.