【发布时间】:2019-01-14 11:43:11
【问题描述】:
我正在 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。谁能解释一下为什么?
谢谢。
【问题讨论】:
-
第一个基本上是整数检查。如果
num是整数,则num和parseInt(num)相等,因此num % num === 0第二个平方num。更好的方法是在这里使用num => num * num顺便说一句。 -
这里使用了两种方法。第一个是
filter( (num) => num > 0 && num % parseInt(num) === 0 )。它过滤一个数组并返回一个数字大于 0 的数组。第二个map( (num) => Math.pow(num, 2) )在第一个之后得到一个返回的数组,并返回一个数组,其中包含前一个数组的每个元素但平方。
标签: javascript parseint