[英]How to create new array of nested object form an existing array of object
請幫助在js中重構object。
const o = [
{
id: 1612,
Tasks: 'Remuneration sheet mentain.',
calendar_year: 2021,
calendar_week_in_year: 45,
WeekStartDate: '2021-10-31',
WeekEndDate: '2021-11-06',
status: 'Done',
},
{
id: 1612,
Tasks: 'Remuneration sheet mentain.',
calendar_year: 2021,
calendar_week_in_year: 46,
WeekStartDate: '2021-11-28',
WeekEndDate: '2021-12-04',
status: 'Done',
},
{
id: 1939,
Tasks: 'Debtors Reconciliation',
calendar_year: 2021,
calendar_week_in_year: 45,
WeekStartDate: '2021-10-31',
WeekEndDate: '2021-11-06',
status: 'Done',
},
{
id: 1939,
Tasks: 'Debtors Reconciliation',
calendar_year: 2021,
calendar_week_in_year: 46,
WeekStartDate: '2021-11-28',
WeekEndDate: '2021-12-04',
status: 'Done',
},
];
const required = [
{
id: 1612,
Tasks: 'Remuneration sheet mentain.',
week: [
{ w_no: 45, calendar_year: 2021, WeekStartDate: '2021-10-31', WeekEndDate: '2021-11-06', status: 'Done' },
{ w_no: 46, calendar_year: 2021, WeekStartDate: '2021-11-28', WeekEndDate: '2021-12-04', status: 'Done' },
],
},
{
id: 1939,
Tasks: 'Debtors Reconciliation',
week: [
{ w_no: 45, calendar_year: 2021, WeekStartDate: '2021-10-31', WeekEndDate: '2021-11-06', status: 'Done' },
{ w_no: 46, calendar_year: 2021, WeekStartDate: '2021-11-28', WeekEndDate: '2021-12-04', status: 'Done' },
],
},
];
我認為您要做的是嵌套數組?
我不完全確定您要實現的目標,因為代碼格式不正確,但請嘗試使用 Google 搜索 Nested Arrays。
應該是這樣的:
{id: ,Task: ,Week:[]}
這實際上只是按id
分組並在數組中累積相關屬性的“分組”。 這里使用reduce()
和解構來隔離迭代對象的必要屬性。
const o = [{ id: 1612, Tasks: 'Remuneration sheet mentain.', calendar_year: 2021, calendar_week_in_year: 45, WeekStartDate: '2021-10-31', WeekEndDate: '2021-11-06', status: 'Done', }, { id: 1612, Tasks: 'Remuneration sheet mentain.', calendar_year: 2021, calendar_week_in_year: 46, WeekStartDate: '2021-11-28', WeekEndDate: '2021-12-04', status: 'Done', }, { id: 1939, Tasks: 'Debtors Reconciliation', calendar_year: 2021, calendar_week_in_year: 45, WeekStartDate: '2021-10-31', WeekEndDate: '2021-11-06', status: 'Done', }, { id: 1939, Tasks: 'Debtors Reconciliation', calendar_year: 2021, calendar_week_in_year: 46, WeekStartDate: '2021-11-28', WeekEndDate: '2021-12-04', status: 'Done', },]; const result = Object.values( o.reduce((a, { id, Tasks, ...week }) => { (a[id]??= { id, Tasks, week: [] }).week.push(week); return a; }, {}) ); console.log(result);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.