首页 > 解决方案 > Javascript过滤整数

问题描述

我正在 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);

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

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

谢谢。

标签: javascriptparseint

解决方案


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

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


推荐阅读