簡體   English   中英

添加數組元素Javascript

[英]Adding array elements Javascript

為什么這段代碼返回10而不是2?

var arrToSum = [2, 4, 10];
function sumArray(array) {
    var result = 0;
    for (var i = array[0]; i < array.length; i++) {
    result += array[i];
    }
  return result;
}
sumArray(arrToSum);

// function returns 10

如果遵循循環邏輯,我將在結果變量加2之后結束,因為下一個i等於3並且循環應結束。 請解釋那里發生了什么。

事情如何在for循環中進行:

for (var i = array[0]; i < array.length; i++) {

在循環中,這些是執行第一個Iteration之后的結果;

第一次迭代; 我= 2

var i = array[0]; // i = 2;
result += array[i]; // result = 10;

array[i]array[2] ,它是10。因此, result是10。

第二次迭代; 我= 3

array.length為3,因為它具有3個元素。 條件i < array.length; 為假,代碼中斷,返回結果為10。

您從2(數組[0]的值)開始,而不是從0開始。

for (var i = array[0]; i < array.length; i++) {

for (var i = 0; i < array.length; i++) {

這就是為什么您應該熟悉javascript中的函數式編程的原因。 mapfilterreduce是您的朋友。 特別是map

盡量避免規則循環,因為它們更容易出錯。 在您的情況下,您搞砸了計數器變量i

var sum = [2, 4, 10].reduce((a, b) => a + b, 0);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM