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

我编写了以下解决方案,以获得数组中只有正整数的平方


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 code

const squaredIntegers = squareList(realNumberArray);

console.log(squaredIntegers);

我得到的输出是16 ,,,, 1764,36 ,,


我期待只有16,1763,36,我试图了解当条件不满足时如何显示逗号。


任何有关上述的帮助表示赞赏


炎炎设计
浏览 676回答 2
2回答

婷婷同学_

在地图前使用过滤器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 codeconst squaredIntegers = squareList(realNumberArray);console.log(squaredIntegers);

偶然的你

正如库纳尔的评论所说,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);
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript