Как сопоставить массив объектов с новым массивом
От некоторого API я получаю такой ответ:
[
{
name: line1,
values: [
{ clock: clock1, value: value1 },
{ clock: clock2, value: value2 },
{ clock: clock3, value: value3 },
{ clock: clock4, value: value4 }
]
},
{
name: line2,
values: [
{ clock: clock1, value: value5 },
{ clock: clock2, value: value6 },
{ clock: clock4, value: value7 }
]
},
{
name: line3,
values: [
{ clock: clock1, value: value8 },
{ clock: clock4, value: value9 }
]
},
{
name: line4,
values: [
{ clock: clock1, value: value10 },
{ clock: clock2, value: value11 },
{ clock: clock3, value: value12 },
{ clock: clock4, value: value13 },
{ clock: clock5, value: value14 }
]
}
]
Все значения свойств clock: *
одинаковы для всех объектов , поэтому clock1
из line1
равно clock1
из line2/3/4
. Но свойства значений не равны.
Для моих целей мне нужно объединить объекты значений из всех строк в этот новый массив объектов:
[
{ clock: clock1, line1: value1, line2: value5, line3: value8, line4: value10 },
{ clock: clock2, line1: value2, line2: value6, line3: null, line4: value11 },
{ clock: clock3, line1: value3, line2: null, line3: null, line4: value12 },
{ clock: clock4, line1: value4, line2: value7, line3: value9, line4: value13 },
{ clock: clock5, line1: null, line2: null, line3: null, line4: value14 }
]
Ключи в новых объектах должны быть свойством name из исходных объектов.
Есть ли способ сделать это?