Formação Agente de Elite (n8n & AI)
Operador: Recruta Nível 1 Objetivo: Dominar a manipulação de dados para interceptar e filtrar informações. Ferramentas: JavaScript (ES6+)
No campo de batalha do n8n, os dados chegam bagunçados e muitas vezes perigosos. Sua arma principal não é uma arma de fogo, é o JavaScript. Você precisa aprender a filtrar (Filter), transformar (Map) e encontrar (Find) alvos específicos em grandes massas de dados JSON.
Copie o código base e resolva o desafio. Teste seus scripts no console do navegador (F12) ou em sites como PlayCode.
Cenário: Você interceptou uma lista de usuários tentando acessar o mainframe. Apenas quem tem status “admin” pode passar. O resto são intrusos.
Sua Missão: Use o método .filter() para criar uma nova lista contendo APENAS os admins.
// 📦 Payload interceptado
const usuarios = [
{ id: 1, codinome: "Neo", role: "admin" },
{ id: 2, codinome: "Smith", role: "virus" },
{ id: 3, codinome: "Morpheus", role: "admin" },
{ id: 4, codinome: "Cypher", role: "traitor" }
];
// 💻 Sua solução aqui:
// const admins = usuarios.filter(...)
// console.log(admins);
Cenário: O sistema de segurança retorna dados brutos. Precisamos formatar isso para um relatório limpo.
Sua Missão: Use o método .map() para criar uma lista de strings que diga apenas: “[CODINOME] é detectado como [ROLE]”.
/*
Resultado esperado:
[
"Neo é detectado como admin",
"Smith é detectado como virus",
...
]
*/
// 💻 Sua solução aqui:
// const relatorio = usuarios.map(...)
Cenário: Temos um alerta de intrusão vindo do ID 4. Precisamos isolar esse sujeito imediatamente.
Sua Missão: Use .find() para capturar o objeto do usuário com id igual a 4.
// 💻 Sua solução aqui:
// const alvo = usuarios.find(...)
Cenário: Precisamos contar quantas ameaças (não-admins) temos no total.
Sua Missão: Use .reduce() ou .filter().length para contar quantos usuários NÃO são admins.
// 💻 Sua solução aqui:
“Nunca confie no input do usuário.” No n8n, quando você usa o node Code, você está manipulando a realidade dos dados. Se você assumir que um campo sempre existe e ele não vier, seu workflow quebra (Crash). Sempre valide:
if (usuario && usuario.role) { ... }
filter (filtra vários) e find (encontra um).map para transformar objetos.Fim da transmissão.