Así que estaba haciendo una función para obtener el correo electrónico del usuario y se me ocurrió esto.
Esta es la función que funciona perfectamente.
const getMail = (users, userLoggedIn) => users?.filter((userToFilter) => userToFilter !== userLoggedIn?.email)[0]; export default getMail; Aquí está la segunda función, que no funciona porque devuelve undefined .
const getMail = (users, userLoggedIn) => { users?.filter((userToFilter) => userToFilter !== userLoggedIn?.email)[0]; } export default getMail;La segunda función no devuelve nada, tendrá que usar la declaración de return al envolver el cuerpo de la función brackets .
Si no coloca corchetes alrededor del cuerpo de la función de flecha, se puede omitir la instrucción de return . Así que la primera función funciona.
En la segunda función, escribió corchetes { y necesitaría agregar una declaración de return .
Entonces estas funciones son iguales:
// #1 const getMail = (users, userLoggedIn) => // curly brackets ommitted. THe function only consists of "1" statement // and the result will automatically returned. users?.filter((userToFilter) => userToFilter !== userLoggedIn?.email)[0]; export default getMail; // #2 const getMail = (users, userLoggedIn) => { // you need to explicitly use "return" to return the value. return users?.filter((userToFilter) => userToFilter !== userLoggedIn?.email)[0]; } export default getMail;Estás usando una taquigrafía sin siquiera saberlo. Sin el {} después de la flecha, de forma predeterminada devolverá lo que venga después de la flecha. De lo contrario, debe usar la declaración de devolución.
const getMail = (users, userLoggedIn) => { return users?.filter((userToFilter) => userToFilter !== userLoggedIn?.email)[0]; } export default getMail;