我编写了以下解决方案,以获得数组中只有正整数的平方const realNumberArray = [4, 5.6, -9.8, 3.14, 42, 6, 8.34, -2];const squareList = (arr) => { "use strict"; const squaredIntegers = arr.map((val) => { if (val % 2 == 0 && val > 0) { return Math.pow(val, 2); } }) return squaredIntegers;};// test your codeconst squaredIntegers = squareList(realNumberArray);console.log(squaredIntegers);我得到的输出是16 ,,,, 1764,36 ,,我期待只有16,1763,36,我试图了解当条件不满足时如何显示逗号。任何有关上述的帮助表示赞赏
2 回答
婷婷同学_
TA贡献1844条经验 获得超8个赞
在地图前使用过滤器
const realNumberArray = [4, 5.6, -9.8, 3.14, 42, 6, 8.34, -2];
const squareList = (arr) => {
"use strict";
return arr.filter(value => value>0 && value%2==0).map(value => Math.pow(value, 2));
};
// test your code
const squaredIntegers = squareList(realNumberArray);
console.log(squaredIntegers);
偶然的你
TA贡献1841条经验 获得超3个赞
正如库纳尔的评论所说,filter将是有用的。它接受谓词函数并返回仅包含传递谓词的值的数组副本。
这是一个带有一些其他次要代码清理的示例。
const realNumberArray = [4, 5.6, -9.8, 3.14, 42, 6, 8.34, -2];
const squareList = arr => arr
.filter(a => !(a % 2) && a > 0)
.map(a => a ** 2);
const squaredIntegers = squareList(realNumberArray);
console.log(squaredIntegers);
添加回答
举报
0/150
提交
取消