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

最佳答案

您将在第一次迭代中返回。
返回必须在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)

08-07 11:12