ES6: Write Higher Order Arrow Functions my code isn't working!

somoene help me please ! why my code isn’t working??
i’m doing the ES6: Write Higher Order Arrow Functions i’m stuck with this code for a long time i need your help

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.map((one)=> 
  if (one % 1 === 0 && one > 0){
     one * one;
  } 

  // change code above this line
  return squaredIntegers;
});
// test your code
const squaredIntegers = squareList(realNumberArray);
console.log(squaredIntegers); 

“one %1” only returns 0 when it’s an integer and not a decimal , it doesn’t return 0 when one is a decimal , thanks for the help anyway

okay finally i found my own solution ! it was very simple it’s just that i didn’t learn High Order Functions before and i had no clue what it was, and unfortunately Free Code Camp didn’t really indroduce us to (filter, map , sort…) it was so confusing for me . luckly i watched a Youtube video explaining all (reduce, map…) and after i cameback solved it easily . here is my Solution:

const squaredIntegers = arr
  .filter(n => n % 1 == 0 && n>0)
  .map(n => n*n);