Oi, Rosemberg!
Sobre sua última dúvida: quando a função de callback precisa retornar um booleano, pense assim — sempre que você estiver usando métodos que fazem testes ou filtros (como .find()
, .filter()
, .some()
, .every()
), a função de callback deve retornar true
ou false
.
Esses métodos percorrem os elementos do array e testam cada um com base no retorno booleano da função. Veja:
// Retorna o primeiro funcionário com id igual ao buscado
const funcionarioEncontrado = funcionarios.find(func => func.id === id);
Neste caso, a expressão func.id === id
já retorna um booleano, que é o que .find()
precisa.
Agora compare com outros cenários:
// Retorna todos os funcionários do departamento de "TI"
const funcionariosTI = funcionarios.filter(func => func.departamento === "TI");
// Verifica se existe algum funcionário com salário acima de 10 mil
const temSalarioAlto = funcionarios.some(func => func.salario > 10000);
// Verifica se todos os funcionários são ativos
const todosAtivos = funcionarios.every(func => func.ativo === true);
Ou seja, a regra é: se o método espera testar elementos para decidir algo, o retorno da função de callback precisa ser um booleano.
Fico à disposição. Abraços e bons estudos!