Я бы хотел отсортировать объекты верхнего уровня данного массива по наиболее вложенному значению (то есть «результат») И «GameType».Сортировка по 'gameType' устанавливается пользователем, который вводит массив значений в определенном порядке, например, [201, 202, 249] (длина ввода не фиксирована).'gameType' вне диапазона, заданного пользователем, игнорируется и выдвигается до конца результата.Сортировка по «результату» происходит путем выбора наибольшего значения из доступных результатов.
Вот функция для сортировки результатов:
outcomes => Math.max(...outcomes.sort(({ outcome: a }, { outcome: b }) => a - b).map(({ outcome }) => outcome))
А вот массив:
[
{
"eventId": 513221,
"games": [
{
"gameId": 31313404,
"gameType": 240,
"outcomes": [
{
"outcome": 1.8
}, {
"outcome": 21
}, {
"outcome": 2
}
]
}, {
"gameId": 31313413,
"gameType": 201,
"outcomes": [
{
"outcome": 2.1
}, {
"outcome": 2.6
}, {
"outcome": 4.1
}
]
}
]
}, {
"eventId": 513216,
"games": [
{
"gameId": 31314456,
"gameType": 249,
"outcomes": [
{
"outcome": 1.45
}, {
"outcome": 40
}, {
"outcome": 2.5
}
]
}, {
"gameId": 31314475,
"gameType": 201,
"outcomes": [
{
"outcome": 1.5
}, {
"outcome": 4.55
}, {
"outcome": 4.75
}
]
}
]
}, {
"eventId": 513263,
"games": [
{
"gameId": 31314398,
"gameType": 241,
"outcomes": [
{
"outcome": 1.52
}, {
"outcome": 2.35
}
]
}, {
"gameId": 31314423,
"gameType": 201,
"outcomes": [
{
"outcome": 1.65
}, {
"outcome": 3.9
}, {
"outcome": 4.25
}
]
}
]
}, {
"eventId": 5132631,
"games": [
{
"gameId": 313143981,
"gameType": 240,
"outcomes": [
{
"outcome": 1.52
}, {
"outcome": 30
}, {
"outcome": 2.35
}
]
}, {
"gameId": 313144231,
"gameType": 202,
"outcomes": [
{
"outcome": 1.65
}, {
"outcome": 3.9
}
]
}
]
}, {
"eventId": 5132632,
"games": [
{
"gameId": 313143912,
"gameType": 298,
"outcomes": [
{
"outcome": 1.57
}, {
"outcome": 2.2
}
]
}, {
"gameId": 313144232,
"gameType": 202,
"outcomes": [
{
"outcome": 1.65
}, {
"outcome": 4.11
}
]
}
]
}
]