【问题标题】:How to square integers inside an array?如何对数组中的整数求平方?
【发布时间】:2019-12-15 11:11:19
【问题描述】:

我刚刚过滤了一组小数和整数,所以我只有一组整数。现在我必须计算那些过滤后的整数的平方。

const realNumberArray = [4, 5.6, -9.8, 3.14, 42, 6, 8.34, -2];

const squareList = (arr) => {

"use strict";


  const squaredIntegers = realNumberArray.filter(x => x > 0 && Number.isInteger(x));



return squaredIntegers;
};

// test your code

const squaredIntegers = squareList(realNumberArray);

console.log(squaredIntegers);

【问题讨论】:

  • 可以映射数组 some_array.map(e => e * e)
  • 问题出在哪里?

标签: javascript ecmascript-6


【解决方案1】:

只需映射数组并执行Math.pow(int,power),但乘法更快,.map 函数中的value * value 也是如此

const realNumberArray = [4, 5.6, -9.8, 3.14, 42, 6, 8.34, -2]; // your array
const squares = realNumberArray.filter(x => x > 0 && Number.isInteger(x)); // your filter function
const squared = squares.map(val => val*val) // map and do val*val to get an array of elements of val*val
console.log(squared) // log it

你的代码变成了

const realNumberArray = [4, 5.6, -9.8, 3.14, 42, 6, 8.34, -2];

const squareList = (arr) => {

  "use strict";
  const squaredIntegers = realNumberArray.filter(x => x > 0 && Number.isInteger(x));
  const squared = squaredIntegers.map(val => val*val)
  return squared;
};

// test your code

const squaredIntegers = squareList(realNumberArray);

console.log(squaredIntegers);

【讨论】:

    【解决方案2】:

    你可以使用 Array.map

    const realNumberArray = [4, 5.6, -9.8, 3.14, 42, 6, 8.34, -2];
    
    const squareList = (arr) => {
        return realNumberArray
            .filter(x => x > 0 && Number.isInteger(x))
            .map(x => x * x);
    };
    
    const squaredIntegers = squareList(realNumberArray);
    
    console.log(squaredIntegers);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-10-27
      • 2011-01-26
      • 2014-11-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多