Reputation: 300
const arr = [ { name: 'Dan', age: 33, color: 'red' }, { name: 'Mike', age: 21, color: 'blue' }, { name: 'Lance', age: 20, color: 'green' }, { name: 'Layne', age: 21, color: 'blue' }, { name: 'Dan', age: 18, color: 'red' } ];
const getUsersWithEyeColor = list =>
list.filter((user, colour) => {
return user.eyeColor.includes(colour);
});
log(getUsersWithColor(arr, 'blue'));
I want to filter an array of objects dynamically, using an array function, but right now I am getting an empty array.
Upvotes: 2
Views: 45
Reputation: 49985
You function takes two arguments so it should be: (list, colour) =>...
and you need to compare the value so .includes()
is not needed:
const arr = [ { name: 'Dan', age: 33, color: 'red' }, { name: 'Mike', age: 21, color: 'blue' }, { name: 'Lance', age: 20, color: 'green' }, { name: 'Layne', age: 21, color: 'blue' }, { name: 'Dan', age: 18, color: 'red' } ];
const getUsersWithColor = (list, colour) =>
list.filter(user => user.color === colour);
console.log(getUsersWithColor(arr, 'blue'));
user
represents single element from list
Upvotes: 1