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)