gpt4 book ai didi

javascript - 对数组中的值求平方的函数

转载 作者:行者123 更新时间:2023-11-30 11:49:41 31 4
gpt4 key购买 nike

我被指示创建一个函数,该函数从数组中获取值并对每个值进行平方,并将数字记录到控制台。我尝试了两种方法,但目前都不起作用:

第一次尝试:

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/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com