2016-12-28 49 views
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]); 
} 
+4

首先要理解的是:這沒有找到任何平方根。 – Pointy

+3

你的代碼與找到平方根相反。它計算正方形。 – Oriol

+0

使用Google,[數組在javascript](https://www.google.com/search?q=arrays+in+javascript&oq=arrays+in+javascript) –

回答

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);

,但你不必有爲此循環,同樣可以通過使用地圖

檢查這個片段

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

啊,對於地圖()來說太早了,你不覺得嗎? :) – sinisake

2

其實,這是找到數字,而不是平方根的平方。這裏有一些意見:

oldArray只是數字的列表(陣列):

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

newArray開始時爲空列表:

var newArray = []; 

for -loop訪問中的每個項目oldArray。在每次迭代中,i被只要i沒有達到oldArray長度增加一(使用i++):

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

newArray.push增加一項的newArray結束。加入該項目是在位置ioldArray值(也稱爲「ioldArray個條目」)與自身相乘:

newArray.push(oldArray[i] * oldArray[i]); 
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]

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也是一組數字,但開始於完全空集([])。您將使用for循環將push號碼輸入到此設置/陣列中。
  3. 對於循環基本上說,如果這是真的(或錯誤),那麼做這個,再次檢查,再次做...直到它不再是真實的(或不再是假的)。在你的情況下,你說i = 0的變量。然後... i < oldArray.length;說如果i小於oldArray集合/數組中的總數,則(i++)加1到i(這就是i++手段)
  4. 然後你說push一些信息到newArray,這是oldArray[i]平方根(Math.sqrt),這意味着在你設定的位置i數量。如果i是3(記住,每次我們循環時我們都增加i),那麼我們將引用6,這是您的數組中的第三個數字。
  5. 循環運行到i = 10,這是您的陣列中有多少個數字。
2

該代碼實際上給出了一個新的數組,每個元素是原始數組中元素的平方。

這第一部分初始化值的數組:

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

這接下來的部分創建新陣列的平方存儲在

var newArray = []; 

現在到了最後一部分。這部分使用for循環遍歷原始數組中的每個索引。數組中的每個元素都有一個索引,或者更基本上是一個「數字」,用於查找數組中的元素佈局。索引號的範圍從0到數組的長度-1。-1是從0開始的。因此,這個循環按順序遍歷每個元素,並將其與自身相乘,然後將其存儲在新的陣列。

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

以下行是專門執行「平方運算」的。它採用當前元素,然後將其自身乘以,從而得到n的平方爲n * n的事實。然後它將它「推」到新數組中,換句話說就是將它添加到新數組中。

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

1.初始化與數字陣列

你可以只初始化空白陣列在JavaScript像var Arrays=[];然後分配一些值數組像Arrays[0]=0; Arrays[1]=1;所以在這裏你正在做的這兩部作品一步到位,

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

2.初始化新數組來保存其出把

你想要一個休息陣列來存儲你想要的輸出。原來你也在這裏初始化數組,

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]); 
相關問題