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()
。
答案 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)