JAVASCRIPT: return statement in normal vs arrow functions.

Source code: How to use the JavaScript filter array method? - Flexiple Tutorials

let freelancers = [{name: "Harry", skill: "JavaScript"},{name: "Mark", skill: "Python"},{name: "David", skill:"JavaScript"}];

let javascript_freelancers = freelancers.filter(function(freelancer) {
    return freelancer.skill == "JavaScript"; });

console.log(javascript_freelancers);

My code:

let freelancers = [{ name: "Harry", skill: "JavaScript" }, { name: "Mark", skill: "Python" }, { name: "David", skill: "JavaScript" }];

let newfreelancers = freelancers.filter((obj) => obj.skill == "Javascript");
console.log(newfreelancers);

My code works when I remove 1 “=” from obj.skill==“Javascript”. Why it’s like that?

When you remove the “=”, your code isn’t working as you may expect:

It is returning all freelancers, including Mark whose skill is Python. The reason your code isn’t working is that you have JavaScript camel-cased in the freelancers object array, but you are checking for Javascript (sentence-cased).

This code should work better:

let freelancers = [{ name: "Harry", skill: "JavaScript" }, { name: "Mark", skill: "Python" }, { name: "David", skill: "JavaScript" }];

let newfreelancers = freelancers.filter(obj => obj.skill == "JavaScript");
console.log(newfreelancers);

:slight_smile:

1 Like

thank you.