У меня есть входной массив объектов, каждый объект которого имеет следующий формат:
{
titleID: string,
titleName: string,
1af23_red: number,
45ua6_blue: number
}
Я знаю следующее:
В каждом объектебудет всегда ключей titleID
и titleName
, а затем у меня будет несколько ключей в формате number_string
.
titleID
и titleName
значения будут разными для разных объектов
Остальные ключи (1af23_red, 45ua6_blue и т. д.) будут одинаковыми во всех объектах, и все они будут иметь одинаковыеформат 'id_name' Итак, если первый объект имеет ключи 1af23_red и 45ua6_blue, все остальные также будут иметь только эти ключи.
Тип массива, который я хочу вернуть, имеет следующийформат:
{
color: {
id
name
},
data: Array<
{
title: {
id
name
},
rating
}
>
}
Итак, пример ввода:
[
{
titleId: 'a',
titleName: 'atitle',
'1af_red': 50
'ba2_blue': 40
},
{
titleId: 'b',
titleName: 'btitle',
'1af_red': 30
'ba2_blue': null
},
{
titleId: 'c',
titleName: 'ctitle',
'1af_red': null
'ba2_blue': 10
}
]
Я ожидал обратно:
[
{
color: {
id: '1af',
name: 'red'
},
data: [
{
title: {
id: 'a',
name: 'atitle',
},
rating: 50
},
{
title: {
id: 'b',
name: 'btitle',
},
rating: 30
},
{
title: {
id: 'c',
name: 'ctitle',
},
rating: null
}
]
},
{
color: {
id: 'ba2',
name: 'blue'
},
data: [
{
title: {
id: 'a',
name: 'atitle',
},
rating: 40
},
{
title: {
id: 'b',
name: 'btitle',
},
rating: null
},
{
title: {
id: 'c',
name: 'ctitle',
},
rating: 10
}
]
}
]
Я попытался сделать это преобразование с картой и уменьшитьно я застрялЕсть ли простой способ сделать это?