**Tell us what’s happening:**

I was stuck on this problem for a long time and decided to check the hint to understand the solution. However, I encountered that the solution uses parseInt on the “num” iterator. I don’t understand why parseInt or the remainder operator would be used. I thought that parseInt converts strings to integers? Why would it be used on an array in which every element is already an integer? Also, what does using the remainder operator accomplish in filtering for decimal places? Wouldn’t a number divided by itself always have no remainder?

Here is the solution:

**Your code so far**

```
const realNumberArray = [4, 5.6, -9.8, 3.14, 42, 6, 8.34, -2];
const squareList = (arr) => {
"use strict";
// change code below this line
const squaredIntegers = arr.filter( (num) => num > 0 && num % parseInt(num) === 0 ).map( (num) => Math.pow(num, 2) );
// change code above this line
return squaredIntegers;
};
// test your code
const squaredIntegers = squareList(realNumberArray);
console.log(squaredIntegers);
```

**Your browser information:**

User Agent is: `Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:62.0) Gecko/20100101 Firefox/62.0`

.

**Link to the challenge:**

https://learn.freecodecamp.org/javascript-algorithms-and-data-structures/es6/write-higher-order-arrow-functions