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

标签 javascript arrays function loops

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

第一次尝试:

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/

相关文章:

function - Julia 中具有多个输出的链接函数

javascript - 如何使用Javascript从未知大小的数组中获取未知大小的数据?

arrays - 使用 F# 中的 Npgsql 传入和传出 postgresql 存储过程的数组参数

python - 如何覆盖python函数的默认帮助消息

javascript - 将对象数组添加到现有对象

ios - 对 X 和 Y 顶点数组进行排序? iOS/Objective-C

c# - 从 JavaScript 引用 C# 方法而不调用它

javascript - 使用 Jquery 通过单个链接调用不同的函数

javascript - 如何在 JS 堆栈跟踪上使用源映射?

javascript - Webgl Globe 在本地不工作