Follow

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use
Contact

Passing a variable to filter callback function

When passing a callback to filter. value, index and Array object is passed to the callback parameters, so how is it possible for me to create a reusable filter callback where i can pass any animal type and filter accordingly.

I did look at How do I pass an extra parameter to the callback function in Javascript .filter() method?
but could not get it to work as intended

let animals = [
  { name: "fiddo", type: "dog" },
  { name: "garfield", type: "cat" },
  { name: "diddi", type: "bird" },
  { name: "bob", type: "cat" },
];

This is what i want to do, I know it is not possible, but how could i achive something "similar"?

MEDevel.com: Open-source for Healthcare and Education

Collecting and validating open-source software for healthcare, education, enterprise, development, medical imaging, medical records, and digital pathology.

Visit Medevel

function filterAnyAnimal(animal, index, arr, typeVariable) {
  if (animal.type === typeVariable) {
    return true;
  }
  return false;
}

console.log(animals.filter(filterAnyAnimal));

do i really have to do like this? or is there a way to pass a variable?


function isDog(animal) {
  if (animal.type === "dog") {
    return true;
  }
  return false;
}

>Solution :

As felix-kling comment said and his already answer, you could do:

let animals = [
  { name: "fiddo", type: "dog" },
  { name: "garfield", type: "cat" },
  { name: "diddi", type: "bird" },
  { name: "bob", type: "cat" },
];
function filterAnyAnimal(typeVariable, animalType) {
   if (animalType === typeVariable) {
    return true;
  }
  return false;
}
let wordToFilter = 'cat';
console.log(animals.filter(function(element){
    return filterAnyAnimal(element.type, wordToFilter);
}));
Add a comment

Leave a Reply

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use

Discover more from Dev solutions

Subscribe now to keep reading and get access to the full archive.

Continue reading