So I solve this challenge:

using a combination of `.filter`

and `.map`

, but I can’t really figure out how the second solution works, can anyone help me translate it into plain English?

```
const squareList = arr => {
return arr.reduce((sqrIntegers, num) => {
return Number.isInteger(num) && num > 0
? sqrIntegers.concat(num * num)
: sqrIntegers;
}, []);
};
```

from the third line: if num is an integer bigger than zero, concat num * num it to sqrIntegers; if not… what?