使用JavaScript对数组中的每个数字求平方-为什么只有第一个数字求平方并返回?

时间:2019-04-06 19:30:37

标签: javascript arrays math

Similar to this question,我正在尝试使用JavaScript将数组中的所有元素平方。但是目前,我的代码仅是平方并返回数组中的元素之一:

function arrayMadness(a) {

    let squaredA = [];

    for (let i = 0; i < a.length; i++) {

        squaredA.push(Math.pow(a[i], 2));

        return squaredA;
    }
  }

  console.log(arrayMadness([4,5,6]));

这将返回16

我想知道为什么吗? squaredA.push(Math.pow(a[i], 2));出现在for循环中,这是否意味着所有元素都被推入数组了?

是否应该返回[16, 25, 36]

我知道还有其他方法可以执行此操作,但是我正试图熟悉Math.pow()-我想像其他解决方案所建议的那样使用Math.pow()

1 个答案:

答案 0 :(得分:4)

您将在第一次迭代中返回。 返回必须在for循环之外。

function arrayMadness(a) {

  let squaredA = [];

  for (let i = 0; i < a.length; i++) {
    squaredA.push(Math.pow(a[i], 2));
  }

  return squaredA;
}

console.log(arrayMadness([4, 5, 6]));


您也可以使用[4,5,6].map(n=>n**2)