Olá, galera.
Durante o curso na aula de remoção do usuário, eu encontrei um problema com o filter...
Se o filter for escrito como aqui mostrado, o método delete apaga todo o array.
async deletar(id: string) {
const usuario = this.buscarPorId(id);
this.usuarios = this.usuarios.filter((usuarioSalvo) => {
if (usuarioSalvo.id === id) return;
});
return usuario;
}
Mas se for escrito assim, ele apaga somente o usuário que a gente passa no ID.
async deletar(id: string) {
const usuario = this.buscarPorId(id);
this.usuarios = this.usuarios.filter(
(usuarioSalvo) => usuarioSalvo.id !== id,
);
return usuario;
}
Teoricamente da primeira forma ele deveria desempenhar a mesma função já que se o ID do item atual no loop for igual ao ID informado para remoção, ele faz ir para a próxima interação ou estou errado? Alguém consegue me explicar o porque desse comportamento?