1

ok so here is the question i am trying to pull the name of an animal if the population is less than 5 using the .filter method. set lowPop as the new array but it always returning as undefined. im not sure why that is could anyone assist?

I have attached a picture to show what the question is asking along with my code. i am getting that my var is undefined and my code is returning a boolian true or false response. the expected response is in the picture. any assistance is greatly appreciated.

code and question with expected/error pic

function lowPopulationAnimals(){
const lowPop = [];
zooAnimals.filter((element => {
lowPop.push(element.population <= 5 );
}));

console.log(lowPopulationAnimals);

2 Answers 2

3

Note that:

The filter() method creates a new array with all elements that pass the test implemented by the provided function.

It is for create a new array, not for modifying the new array.

Also, you should not use push in array.filter, filter is running a test to the array and create the copy to all the element in the array that pass the test.

Also, you are directly assigning function_name to console which is incorrect.

Use:

function lowPopulationAnimals(){
let lowPop = [];
 lowPop = zooAnimals.filter(element =>element.population <= 5 )
console.log(lowPop);
}

lowPopulationAnimals();

Sign up to request clarification or add additional context in comments.

2 Comments

You can't reassign to a const, you should simply be returning the result of the filter call. function lowPopulationAnimals(){return zooAnimals.filter(element =>element.population <= 5 )}. As it stands your function returns undefined
@pilchard, you are right. I make a small mistake. Has changed it. Thanks for telling me that!
0

When you pass a function to another function (as you are doing to "filter") it passes a function that only has access to the data you provide it. When filter is called, it passes each element to the function you provide it and if the value it returns evaluates to true then it keeps it, otherwise it removes it. Look into callback functions, and see here in the documentation.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.