Javascript 过滤整数

2 javascript parseint

我正在 FreecodeCamp 上学习 JavaScript。而且,我的问题的解决方案并没有帮助我更多。我们必须过滤保存在 const 变量中的数组中的整数。

const realNumberArray = [4, 5.6, -9.8, 3.14, 42, 6, 8.34, -2];
const squareList = (arr) => {
  "use strict";
const squaredIntegers = arr.filter( (num) => num > 0 && num % parseInt(num) === 0 ).map( (num) => Math.pow(num, 2) );
 return squaredIntegers;
};

const squaredIntegers = squareList(realNumberArray);
console.log(squaredIntegers);
Run Code Online (Sandbox Code Playgroud)

我真的无法理解这部分 num % parseInt(num) === 0 ).map( (num) => Math.pow(num, 2) );

为什么使用 parseint() 方法和 Math.pow。有人可以解释我为什么吗?

谢谢。

小智 5

parseInt(num)给出 num 的整数部分,例如,parseInt(3.14) === 3 //true。使用num % parseInt(num)基本上给出了数字与其整数部分之间的差异。如果不是0,则该号码被丢弃。 Math.pow(num)给出一个平方数,它返回到新数组。但是,num * num在这方面更快,不必包含模块并调用对象属性。

除此之外,解决方案中的代码非常拥挤,我建议将其分解以提高可读性。似乎它的写作风格增加了混乱。