Filtragem e agregação de dados em vários níveis usando funções de ordem superior

JavaScript Hard functions

Tarefa «Filtragem e agregação de dados em vários níveis usando funções de ordem superior»

Escreva uma função `processData` que recebe um array de objetos (cada objeto contém os campos `category`, `value`, `active`) e dois números inteiros `minValue` e `maxValue`. A função deve filtrar os objetos onde `active === true` e `value` está no intervalo [minValue, maxValue] (inclusive), em seguida, agrupá-los por `category`, para cada grupo calcular a média aritmética de `value` (com arredondamento para duas casas decimais) e ordenar os grupos em ordem decrescente da média. Retornar um array de strings no formato "category: average".

Formato de Entrada

Uma string com um array JSON de objetos, seguida por dois números inteiros (minValue e maxValue) separados por espaço.

Formato de Saída

Um array de strings, cada string no formato "category: average" (sem espaços extras). Se não houver objetos correspondentes, retornar um array vazio [].

Exemplos

Exemplo 1

ENTRADA
123
SAÍDA
main.js