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

问题描述 投票:0回答:1

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

javascript arrays math
1个回答
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)

© www.soinside.com 2019 - 2024. All rights reserved.