Recomendação colaborativa
Sistemas de recomendação são onipresentes: Netflix sugerindo séries, Spotify indicando playlists, até e-commerce sugerindo produtos. A lógica por trás é simples: encontrar o que outros usuários com gostos parecidos já consumiram e que você ainda não viu. Dominar filter, includes e flat permite implementar essa mecânica sem loops complexos, usando apenas métodos de array nativos.
O PROBLEMA
Encontre usuários com filmes em comum e recomende filmes não vistos.
EXEMPLO
Recomendado para Ana: ["F4"]
SOBRE O CONCEITO
O exercício usa filter para selecionar outros usuários que assistiram pelo menos um filme em comum com você. includes verifica se o filme do outro está no seu histórico. flat nivela a lista de filmes recomendados (arrays de arrays) em um só nível. Set elimina duplicatas automaticamente. O erro comum é recomendar um filme que o usuário já viu – isso acontece se você não remover os filmes do próprio histórico antes de recomendar. A solução é combinar filter no array de recomendações com .includes() do seu histórico, ou usar Set para subtrair os já vistos.
RESOLUÇÃO