我被指示创建一个函数,该函数从数组中获取值并对每个值进行平方,并将数字记录到控制台。我尝试了两种方法,但目前都不起作用:
第一次尝试:
var numbers = [2, 7, 13, 24];
function squareAll(numbers) {
var newArray = [];
for(i = 0; i < numbers.length; i++) {
numbers = newArray.push(Math.pow(numbers[i], 2))
return newArray;
}
console.log(squareAll(numbers));
}
第二次尝试:
var numbers = [2, 7, 9, 25];
var newArray = [];
var squareAll = function(numbers) {
for(var i = 0; i < numbers.length; i++){
newArray = [];
newArray.push(squareAll[i] * squareAll[i])
};
return newArray;
};
console.log(squareAll(newArray));
当我在 javascript 控制台中尝试这两种代码时,都返回未定义并且不会给我特定的错误,所以我不确定这里出了什么问题。任何解释将不胜感激!
最佳答案
在您的第一次尝试中,您将 push 方法分配给一个变量,这是一种不好的做法。其次,您在循环的第一个循环之后立即返回函数,因此您在遍历数组的所有元素之前停止循环。
在第二次尝试中,由于循环内的 newArray = [];
,您基本上是在循环的每个循环后清除数组。因此,在每个循环中,您都在 newArray 中放置一个元素,然后告诉循环清除 newArray。循环将变得无限,因为 newArray 的长度永远不会达到 numbers.length。
var numbers = [2, 7, 13, 24];
var newArray = [];
console.log(numbers.map(v => Math.pow(v, 2)));
或者:
var numbers = [2, 7, 13, 24];
var newArray = [];
for (var i = 0; i < numbers.length; i++) {
newArray.push(Math.pow(numbers[i], 2));
}
console.log(newArray);
关于javascript - 对数组中的值求平方的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39862347/