我正在研究一个类,并被要求为循环数组编写以下代码,但我不了解它是如何工作的一步一步的过程。有谁可以向我解释一下?它找到了平方根,但我不知道它是如何工作的。
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]);
}
答案 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
的末尾。添加的项目是i
中oldArray
位置的值(也称为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)
这里写的代码没有找到平方根。它创建了一个新数组,其中每个项目都是同一索引处旧数组项的平方。
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;
答案 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]
}
好的......这就是发生了什么...
oldArray
基本上只是一组数字(称为数组)。newArray
也是一组数字,但以完全为空的集合([]
)开头。您将使用push
循环将for
数字转到此集/数组中。i
= 0的变量。然后...... i < oldArray.length;
表示如果i
小于oldArray
中的数字总数} set / array,然后(i++
)将1添加到i
(这就是i++
的含义)push
一些信息说成newArray
,即Math.sqrt
的平方根(oldArray[i]
),这意味着位置{{1}在你的集合中。如果i
为3(请记住,每次循环时我们都会增加i
),那么我们将指的是6,这是数组中的第三个数字。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]);