簡體   English   中英

Javascript - 根據數組中的特定數據將數組轉換為 object

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM