Как сгруппировать ключи динамических объектов в Javascript

Как сгруппировать ключи динамических объектов в Javascript

У меня есть объект, как показано ниже

 { UserId: "", BidderId: "", "1stDomestic.BidderId": "", "1stDomestic.UserId": "234", "1stEmployee.CreatedDate": "", "1stIndependent.UpdatedDate": "", "1stIndependent.CreateDate": "" } 

Требование таково, что мне нужно сгруппировать точечные ключи объекта и создать вывод, как показано ниже

  { UserId: "", BidderId: "", 1stDomestic: [ { BidderId="", UserId="234" } ], 1stEmployee: [ { CreatedDate="" } ], 1stIndependent: [ { UpdatedDate="", CreatedDate="" } ], lstDomestic.BidderId = "", 1stDomestic.UserId="234", 1stEmployee.CreatedDate="", 1stIndependent.UpdatedDate="" 1stIndependent.CreateDate="" } 

Я пытался добиться этого, используя несколько подходов. Здесь requiredData является объектом

Подход 1

 for (let prop in requestedData) { if (prop.indexOf(".") {amp}gt; -1) { mainKey[prop.split(".").pop()] = requestedData[prop]; requestedData[prop.substr(0, prop.indexOf("."))] = [mainKey]; } } console.log(requestedData) 

Приведенный выше подход дает мне структуру, но данные массива отражают одинаково для всех.

  1stDomestic: [ { BidderId="", UserId="234", CreatedDate="", UpdatedDate="" } ], 1stEmployee: [ { BidderId="", UserId="234", CreatedDate="", UpdatedDate="" } ], 1stIndependent: [ { BidderId="", UserId="234", CreatedDate="", UpdatedDate="" } ] 

Подход 2

 for (let prop in requestedData) { if (prop.indexOf(".") {amp}gt; -1) { arr.push({ newProp: prop.substr(0, prop.indexOf(".")), //--{amp}gt;1 mainKey: prop.split(".").pop(), // --{amp}gt; 2 value: requestedData[prop] // --{amp}gt;3 }); } } console.log(Object.assign(requestedData, groupData(arr)); groupData(arrVal) { let key = "newProp"; return resData.reduce((previous, current) ={amp}gt; { previous[current[key]] {amp}amp;{amp}amp; previous[current[key]].length != 0 ? previous[current[key]].push(current) : (previous[current[key]] = new Array(current)); return previous; }, {}); } 

Вышеуказанный подход группирует данные на основе ключей, но затем он создает и отдельные массивы объектов со свойствами как в 1,2 и 3

Я ожидаю, что это будет так, как указано выше. Я как бы сейчас в затруднении и пытаюсь это выяснить.

Я новичок в этом форуме, задаю вопрос, прошу нести, если я как-то сделал этот вопрос слишком длинным и интуитивно понятным Помощь будет оценена

Понравилась статья? Поделиться с друзьями:
JavaScript & TypeScript
Adblock
detector