我不了解阵列是如何工作的

时间:2016-12-28 18:55:07

标签: javascript arrays loops for-loop

我正在研究一个类,并被要求为循环数组编写以下代码,但我不了解它是如何工作的一步一步的过程。有谁可以向我解释一下?它找到了平方根,但我不知道它是如何工作的。

var oldArray = [12, 45, 6, 23, 19, 20, 20, 15, 30, 42];

// Write your code below this line
var newArray = [];
for (i = 0; i < oldArray.length; i++) {
  newArray.push(oldArray[i] * oldArray[i]);
}

6 个答案:

答案 0 :(得分:2)

实际上,这是找到数字的平方,而不是平方根。以下是一些观察结果:

oldArray只是一个数字列表(数组):

var oldArray = [12, 45, 6, 23, 19, 20, 20, 15, 30, 42];

newArray以空列表开头:

var newArray = [];

for - 循环访问oldArray中的每个项目。在每次迭代中,只要i未达到i++的长度,i就会增加一oldArray

for (i = 0; i < oldArray.length; i++)

newArray.push将一个项目添加到newArray的末尾。添加的项目是ioldArray位置的值(也称为i的{​​{1}}项)与自身相乘:

oldArray

答案 1 :(得分:2)

这段代码实际上给出了一个新数组,每个元素都是原始数组中元素的平方。

第一部分初始化值数组:

var oldArray = [12, 45, 6, 23, 19, 20, 20, 15, 30, 42];

下一部分创建新数组以存储方块。

var newArray = [];

现在是最后一部分。这部分使用for循环遍历原始数组中的每个索引。数组中的每个元素都有一个索引,或者更基本上是一个&#34;数字&#34;用于查找数组中的元素放置。索引号的范围从0到数组的长度 - 1. -1是因为它从0开始。因此,这个循环按顺序遍历每个元素,接受它并将其乘以它自己,然后将它存储在新的元素中。阵列。

for (i = 0; i < oldArray.length; i++) {
  newArray.push(oldArray[i] * oldArray[i]);
}

以下行是具体执行&#34; square操作&#34;。它接受当前元素然后将其自身相乘,从而得到n的平方为n * n的事实。然后它推动&#34;它进入新数组,或者换句话说将它添加到新数组中。

newArray.push(oldArray[i] * oldArray[i]);

答案 2 :(得分:0)

它将oldArray的每个元素与自身相乘并将其推送到newArray

检查这个

var oldArray = [12, 45, 6, 23, 19, 20, 20, 15, 30, 42];

// Write your code below this line
var newArray = [];
for (i = 0; i < oldArray.length; i++) {
  newArray.push(oldArray[i] * oldArray[i]);
}

console.log(newArray);

但你不需要为此循环,使用map

可以实现相同的目的

检查此代码段

var oldArray = [12, 45, 6, 23, 19, 20, 20, 15, 30, 42];

// Write your code below this line
var newArray = [];

newArray = oldArray.map(function(number) {
  return number * number;
});


console.log(newArray);

希望有所帮助

答案 3 :(得分:0)

这里写的代码没有找到平方根。它创建了一个新数组,其中每个项目都是同一索引处旧数组项的平方。

&#13;
&#13;
var oldArray = [12, 45, 6, 23, 19, 20, 20, 15, 30, 42];

// Write your code below this line
var newArray = [];
for (i = 0; i < oldArray.length; i++) {
  newArray.push(oldArray[i] * oldArray[i]);
}

console.log(newArray)
// [144, 2025, 36, 529, 361, 400, 400, 225, 900, 1764]
&#13;
&#13;
&#13;

答案 4 :(得分:0)

这将为您提供平方根:

var oldArray = [12, 45, 6, 23, 19, 20, 20, 15, 30, 42];

// Write your code below this line
var newArray = [];
for (i = 0; i < oldArray.length; i++) {
  newArray.push(Math.sqrt(oldArray[i]))

  console.log(newArray);
//[3.4641016151377544, 6.708203932499369, 2.449489742783178, 4.795831523312719, 4.358898943540674, 4.47213595499958, 4.47213595499958, 3.872983346207417, 5.477225575051661, 6.48074069840786]
}

好的......这就是发生了什么...

  1. oldArray基本上只是一组数字(称为数组)。
  2. newArray也是一组数字,但以完全为空的集合([])开头。您将使用push循环将for数字转到此集/数组中。
  3. for循环基本上说如果这是真的(或假),那么这样做,再次检查,再做一次......直到它不再是真的(或不再是假的)。在您的情况下,您说的是一个名为i = 0的变量。然后...... i < oldArray.length;表示如果i小于oldArray中的数字总数} set / array,然后(i++)将1添加到i(这就是i++的含义)
  4. 然后,您将push一些信息说成newArray,即Math.sqrt的平方根(oldArray[i]),这意味着位置{{1}在你的集合中。如果i为3(请记住,每次循环时我们都会增加i),那么我们将指的是6,这是数组中的第三个数字。
  5. 你的循环一直运行到i = 10,这是你的数组中有多少个数字。

答案 5 :(得分:0)

<强> 1。使用数字初始化数组

您可以在JavaScript中初始化空白数组,例如var Arrays=[];然后为该数组分配一些值,例如Arrays[0]=0; Arrays[1]=1;所以,您只需一步完成这两项工作,< / p>

var oldArray = [12, 45, 6, 23, 19, 20, 20, 15, 30, 42];

<强> 2。初始化新阵列以存储输出

你想要一个rest数组来存储你想要的输出。所以你在这里初始化这个数组,

var newArray = [];

第3。运行循环

您正在使用普通for循环逐步获取循环中的每个元素。您也可以使用foreach和其他一些方法来执行此操作,

for (i = 0; i < oldArray.length; i++) {
  // Code inside the Loop
}

<强> 4。将输出分配给新数组

您正在使用oldArray[i] * oldArray[i]获取输出。然后使用push命令将该输出值插入新数组后。您将此行放在循环中以逐步将每个输出存储到新数组。

newArray.push(oldArray[i] * oldArray[i]);