ok, aquí está la pregunta. Estoy tratando de obtener el nombre de un animal si la población es inferior a 5 usando el método .filter. establezca lowPop como la nueva matriz, pero siempre regresa como indefinido. No estoy seguro de por qué alguien podría ayudar.
He adjuntado una imagen para mostrar lo que hace la pregunta junto con mi código. Obtengo que mi var no está definido y mi código devuelve una respuesta booliana verdadera o falsa. la respuesta esperada está en la imagen. Cualquier ayuda es muy apreciada.
código y pregunta con imagen esperada/error
function lowPopulationAnimals(){ const lowPop = []; zooAnimals.filter((element => { lowPop.push(element.population <= 5 ); })); console.log(lowPopulationAnimals);Tenga en cuenta que:
El método filter() crea una nueva matriz con todos los elementos que pasan la prueba implementada por la función proporcionada.
Es para crear una nueva matriz, no para modificar la nueva matriz.
Además, no debe usar push in array.filter , el filter ejecuta una prueba en la matriz y crea la copia en todos los elementos de la matriz que pasan la prueba.
Además, está asignando directamente function_name a la console lo cual es incorrecto.
Usar:
function lowPopulationAnimals(){ let lowPop = []; lowPop = zooAnimals.filter(element =>element.population <= 5 ) console.log(lowPop); } lowPopulationAnimals();Cuando pasa una función a otra función (como lo está haciendo para "filtrar"), pasa una función que solo tiene acceso a los datos que usted le proporciona. Cuando se llama al filtro, pasa cada elemento a la función que le proporcionas y si el valor que devuelve se evalúa como verdadero, lo conserva; de lo contrario, lo elimina. Mire las funciones de devolución de llamada y consulte aquí en la documentación.