Este repositório contém um teste de programação em JavaScript voltado para resolver problemas relacionados à manipulação, organização e normalização de dados baseados em uma planilha comercial. O objetivo é implementar funções específicas e validá-las utilizando os conjuntos de dados fornecidos.
- Desenvolver funções para lidar com cálculos, organização e normalização de dados.
- Trabalhar com conjuntos de dados realistas, transformando e extraindo informações conforme necessário.
- Implementar soluções para cenários descritos no enunciado.
Os dados incluem:
- Cálculos Matemáticos: Conversões entre valores monetários e porcentagens.
- Valores Sequenciados: Extração e formatação de campos específicos.
- Normalização: Limpeza de valores incorretos em categorias como "Modalidades" e "Graus".
- Relacionamento de Dados: Combinação de datasets utilizando identificadores únicos.
- Informações Únicas: Remoção de entradas duplicadas em um conjunto de dados.
As funções a seguir precisam ser completadas:
calcularValorFinal
: Calcula o valor final com base nos descontos fornecidos e determina o total economizado.associarCampus
: Cria uma lista associando os campi com seus metadados.normalizarValores
: Substitui valores incorretos pelos corretos utilizando um dicionário.cruzarBases
: Relaciona dois conjuntos de dados, combinando-os com base em identificadores comuns.gerarChavesUnicas
: Gera chaves únicas para as entradas do dataset no formatoidCampus-nomeCurso-preco
.
Os principais conjuntos de dados fornecidos incluem:
- Dados para cálculos matemáticos (
matematicaData
) - Valores de metadados e campi (
valoresData
) - Dicionários corretos e incorretos para modalidades e graus
- Conjuntos de dados internos e externos para cruzamento
- Entradas duplicadas para deduplicação
- Certifique-se de que você tem o Node.js instalado em sua máquina.
- Clone este repositório:
git clone <url_do_repositorio> cd <nome_do_repositorio>
- Abra o arquivo desafios.js em seu editor de código favorito.
- Complete as funções marcadas como TODO.
- Execute o código para validar suas soluções:
node desafios.js