У меня есть объект данных, с которым я работаю, он динамический и поступает из вызова базы данных.Если запись содержит approval
подробности, она будет содержаться в возвращаемом мной объекте, в противном случае она будет опущена.
Моя проблема в том, что у меня есть метод экспорта, который берет объект и превращает его вфайл Excel, но при этом используется только первый уровень объекта, поэтому отсутствуют возможные данные подтверждения.
Я пытаюсь выяснить, как сгладить или уменьшить объект, чтобы он принес все ключи /значения для родительского уровня.
Пример кода:
// Current Data
var obj = [{
"toolSuite": "Enterprise Product",
"toolStatus": "Active",
"toolOwnerGroup": "PD",
"toolTier": "1",
"infoSec": "Yes",
"sso": "?",
"toolPortfolio": "Enterprise Product",
"NeedByDate": "29-Jun-2018",
"approvals": {
"approval": { <--- Need to move all this data to the parent level
"ApprovalID": "139",
"TaskID": "232",
"SubmissionDate": "2018-10-03T22:19:24.153",
"WhoSubmitted": "Q1234",
"Approver": "Q5678",
"IsCanceled": "0",
"ApproverFirst": "Bob",
"ApproverLast": "Builder",
"ApproverNTID": "bbuilder"
}
}
}, {
"toolSuite": "Enterprise Product",
"toolStatus": "Active",
"toolOwnerGroup": "PD",
"toolTier": "1",
"infoSec": "Yes",
"sso": "?",
"toolPortfolio": "Enterprise Product",
"NeedByDate": "29-Jun-2018",
"ApprovalID": "139"
}]
// Desired Output
var obj = [{
"toolSuite": "Enterprise Product",
"toolStatus": "Active",
"toolOwnerGroup": "PD",
"toolTier": "1",
"infoSec": "Yes",
"sso": "?",
"toolPortfolio": "Enterprise Product",
"NeedByDate": "29-Jun-2018",
"ApprovalID": "139",
"TaskID": "232",
"SubmissionDate": "2018-10-03T22:19:24.153",
"WhoSubmitted": "Q1234",
"Approver": "Q5678",
"IsCanceled": "0",
"ApproverFirst": "Bob",
"ApproverLast": "Builder",
"ApproverNTID": "bbuilder"
}, {
"toolSuite": "Enterprise Product",
"toolStatus": "Active",
"toolOwnerGroup": "PD",
"toolTier": "1",
"infoSec": "Yes",
"sso": "?",
"toolPortfolio": "Enterprise Product",
"NeedByDate": "29-Jun-2018",
}]
В приведенном выше коде первый объект имеет данные approvals.approval
.Я пытаюсь вывести эти данные на родительский уровень.Это не массив данных, поэтому не будет дубликатов ключей.
В настоящее время я использую lodash
в своем проекте для других элементов, но я не смог найти ничего, с чем я мог бы легко справиться.чтобы сделать то, что мне нужно.
Для этой ситуации мне нужно reduce
или flatten
?Это должно только когда-либо быть approvals.approval
, но если есть способ, которым я могу просто указать глубину, скажем 3
, и он может переместить эти данные в родительский, это было бы идеально.
Какой подход я должен использовать с типом объекта?