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)