[javascript] arrow function question

Asked 2 years ago, Updated 2 years ago, 164 views

Hello, I am studying arrow function and I have a question.

    const inventors = [
      { { first: 'Albert', last: 'Einstein', year: 1879, passed: 1955 },
      { { first: 'Isaac', last: 'Newton', year: 1643, passed: 1727 },
      { { first: 'Galileo', last: 'Galilei', year: 1564, passed: 1642 },
      { { first: 'Marie', last: 'Curie', year: 1867, passed: 1934 },
      { { first: 'Johannes', last: 'Kepler', year: 1571, passed: 1630 },
      { { first: 'Nicolaus', last: 'Copernicus', year: 1473, passed: 1543 },
      { { first: 'Max', last: 'Planck', year: 1858, passed: 1947 },
      { { first: 'Katherine', last: 'Blodgett', year: 1898, passed: 1979 },
      { { first: 'Ada', last: 'Lovelace', year: 1815, passed: 1852 },
      { { first: 'Sarah E.', last: 'Goode', year: 1855, passed: 1905 },
      { { first: 'Lise', last: 'Meitner', year: 1878, passed: 1968 },
      { { first: 'Hanna', last: 'Hammarström', year: 1829, passed: 1909 }
    ];

    // // Array.prototype.filter()
    // // 1. Filter the list of inventors for those who were born in the 1500's
    const afterInventors = inventors.filter(function(element){
        if(element.year > 1500){
            return element
        } 
    });

I fixed the filter function above with the arrow function.

    const aI = inventors.filter(element => {if(element.year > 1500) return element});

However, I heard that return can be omitted by one line in the arrow function, so I tried to make it by omitting return.

    const aI2 = inventors.filter(element => element.year > 1500);

AI2 created by declaring as above contains the same value. But I don't understand ai2. Is it possible to omit the conditional statement in the arrow function? And if you omit the conditional statement, what do you return...

I want to omit it like aI2... I can only use it like al.

Thank you for reading my question.

javascript arrowfunction

2022-09-22 20:20

2 Answers

I was embarrassed, so I was thinking about erasing it, but I'm leaving a self-answer.

The filter method must return the Boolean type. Therefore..

constaI=inventors.filter(element=> {if(element.year> 1500) return element}); The result will be correct constaI=inventors.filter(element=> {if(element.year> 1500) return Boolean}); is the correct expression.

For filter, it returns true and false const aI2 = inventors.filter(element => element.year > 1500); You can write it like .

Therefore, the filter method, which returns true and false, is extremely easy to write a function using the arrow function.

I'm embarrassed JS, study hard!


2022-09-22 20:20

=> is not a conditional statement, but a operator and belongs to the comparison operator classification.
The comparison operator receives two values, compares them, and returns a logical value, so it can be used like aI2.
The conditional statement if (condition) simply branches using the result of the expression used in condition, not if performs comparative operations.


2022-09-22 20:20

If you have any answers or tips


© 2024 OneMinuteCode. All rights reserved.