为了账号安全,请及时绑定邮箱和手机立即绑定

如果条件不满足,则在数组中返回空值和逗号,JS映射箭头函数

如果条件不满足,则在数组中返回空值和逗号,JS映射箭头函数

炎炎设计 2019-04-17 18:15:02
我编写了以下解决方案,以获得数组中只有正整数的平方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);


查看完整回答
反对 回复 2019-05-17
?
偶然的你

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);


查看完整回答
反对 回复 2019-05-17
  • 2 回答
  • 0 关注
  • 675 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信