минипуляция вложенных данных json для данных ngx в angualr -6 / js - PullRequest
0 голосов
/ 03 мая 2019

Я пытаюсь создать таблицу данных ngx, которая динамически создает столбцы из вложенных массивов, что при некоторых исследованиях невозможно - поэтому для достижения желаемого результата я должен сгладить вложенные массивы ключом / значениями, которые мне нужны от каждоговложенный объект в родительский объект.

Мне нужно манипулировать моими данными, чтобы мой конечный результат представлял собой плоский массив и содержал отдельные позиции для каждого объекта в доходах вложенного массива с 'сокращением' это ключ, а 'сумма' , это значение ..

Т.е.

[
{
employee_uuid:  978f37df-7e07-4118-be93-d82507ce5c46,
employee_code:  JB00024,
full_name:  Thulisile Sandra,
last_name:  Bhekiswayo
earnings:[{
    abbreviation: "NT HRS"
    amount: "45.00"
    money: false
    name: "Normal Time HRS"
    time: true
    unique: "7d783469-717e-408a-bc3c-93115cb632dd_true"
    uuid: "7d783469-717e-408a-bc3c-93115cb632dd"
    value: "45.00"
},
{
    abbreviation: "OT HRS"
    amount: "25.00"
    money: false
    name: "Normal Time HRS"
    time: true
    unique: "7d783469-717e-408a-bc3c-93115cb632dd_true"
    uuid: "7d783469-717e-408a-bc3c-93115cb632dd"
    value: "45.00"
}],
terminated  false
}
...
]

Я бы хотел выглядеть так:

[
{
employee_uuid:  978f37df-7e07-4118-be93-d82507ce5c46,
employee_code:  JB00024,
full_name:  Thulisile Sandra,
last_name:  Bhekiswayo,

NT HRS: '45.00',
OT HRS, '25.00',

terminated:false
}
...
]

Я не уверен, как это сделать, я пробовал сокращать и отображать функции, но безуспешно. Я могу добавить вложенные массивы в родительский объект с помощью Object.assign, но он принимает весь объект, мне нужносоздать новый параметр из этого объекта ..

Любая помощь будет принята с благодарностью ..

1 Ответ

1 голос
/ 06 мая 2019

Вы можете использовать для этого деструктурирование es6, просто выставьте все нужные вам свойства и затем «перекомпоновайте» в нужную форму объекта. Например:

return myEmployeeArray.map(employee => { 
const {earn } = employee
earn.map(field => field.abbreviation)
myDesiredObject = { fieldA: employee.abbreviation....fieldE:field.abbreviation} 
}

Это даст вам одно из ваших вложенных полей

...