freeCodeCamp/guide/english/certifications/javascript-algorithms-and-d.../es6/write-higher-order-arrow-fu.../index.md

3.4 KiB

title
Write Higher Order Arrow Functions

:triangular_flag_on_post: Remember to use Read-Search-Ask if you get stuck. Try to pair program :busts_in_silhouette: and write your own code :pencil:

Problem explanation:

We need to compute and square values from the realNumberArray and store them in the variable squaredIntegers using the map(), filter(), and/or reduce() functions.

:speech_balloon: Hint: 1

  • You will need to filter() the realNumberArray for positive integers (decimals are not integers).

try to solve the problem now

:speech_balloon: Hint: 2

  • You will need to map() the values from your filter() function to the variable squaredIntegers.

try to solve the problem now

:speech_balloon: Hint: 3

  • Remember the magic of chaining functions.

try to solve the problem now

Spoiler alert!

warning sign

Solution ahead!

:beginner: Code solution:

    const squareList = (arr) => {
      "use strict";
      const squaredIntegers = arr.filter( (num) => num > 0 && num % parseInt(num) === 0 ).map( (num) => Math.pow(num, 2) );
      return squaredIntegers;
    };

    // test your code
    const squaredIntegers = squareList(realNumberArray);
    console.log(squaredIntegers);

Code explanation:

Uses the operator filter() and map() functions to square all positive integers in a given array.

Alternative code solution:


  // change code below this line
  const squaredIntegers = arr.filter((param) => Number.isInteger(param) && param >= 0).map(x => x * x);
  // change code above this line

Code explanation

This does basically the same but uses the isInteger() method to check the numbers.

Resources