如何在JavaScript中建立動態長度的數字陣列並求和?


在JavaScript中,陣列長度總是動態的。與其他程式語言不同,我們不需要在建立陣列時定義陣列的長度。因此,我們可以建立一個數組,並在JavaScript陣列中新增任意數量的元素。在這裡,我們將建立一個動態長度的陣列,並向其中新增數字。之後,我們將對所有數字求和。本教程將教我們如何使用JavaScript建立動態長度的數字陣列並求和。

使用for迴圈對動態陣列的所有元素求和

我們可以使用for迴圈遍歷陣列,並將每個元素相加以獲得所有元素的總和。我們將使用普通的for迴圈和for...of迴圈來訪問陣列元素並將所有元素新增到單個變數中。

語法

使用者可以按照以下語法使用for迴圈對動態長度陣列的所有元素求和。

let arraySum = 0;
for (let i = 0; i < length; i++) {
  arraySum += dynamicArray[i];
}

在上面的語法中,length是動態陣列的長度。我們將所有元素新增到arraySum變數中。

步驟

  • 使用Math.random()方法生成一個隨機整數作為動態陣列的長度。

  • 此外,將隨機生成的長度乘以任何整數以定義動態陣列長度的範圍。例如,如果要建立長度在0到15之間的動態陣列,則將隨機整數乘以15,因為它生成的數值在0到10之間。

  • 現在,使用for迴圈初始化值。為了初始化隨機值,我們再次使用了Math.random()方法並將其乘以5以生成0到5之間的隨機值。

  • 使用Math.round()方法對隨機生成的數字進行四捨五入。

  • 建立一個arraysum變數並初始化為零。

  • 現在,遍歷陣列並將每個元素新增到arraySum變數中。

示例1

在下面的示例中,我們使用了Math.random()函式來生成動態陣列的長度,使用隨機值初始化陣列,並使用for迴圈對所有陣列值求和。

在輸出中,使用者可以看到陣列的值及其總和。此外,每次使用者執行下面的程式碼時,它都會建立一個具有不同長度和值的新的陣列。

<html>
<body>
   <h2>Using the <i> for-loop </i> add all elements of the array of numbers of dynamic length.</h2>
   <div id = "output"> </div>
   <script>
      let output = document.getElementById('output');
      let length = Math.random() * 15;
      let dynamicArray = [];
         for (let i = 0; i < length; i++) {
            dynamicArray[i] = Math.round(Math.random() * 5);
         }
      let arraySum = 0;
      for (let i = 0; i < length; i++) {
         arraySum += dynamicArray[i];
      }
      output.innerHTML += "The array of random number is " + dynamicArray + "<br/>";
      output.innerHTML += "The sum of all array elements is " + arraySum + "<br/>";
   </script>
</body>
</html>

示例2

在下面的示例中,我們從使用者那裡獲取動態陣列的長度。此外,我們還從使用者那裡獲取陣列的每個值。將使用者輸入儲存在動態陣列中後,我們使用for...of迴圈遍歷它。

在for迴圈迭代期間,我們將陣列的每個元素新增到sum變數中。

<html>
<body>
  <h2>Using the <i> for-of loop </i> add all elements of the array of numbers of dynamic length.</h2>
  <div id = "output"> </div>
  <script>
    let output = document.getElementById('output');
    // take the dynamic length of the array from users
    let length = +prompt("Enter a length of the dynamic array", 5);
    let dynamicArray = [];
    // take array inputs from users
    for (let i = 1; i <= length; i++) {
      dynamicArray.push(+prompt("Enter " + i + "th number value", 0))
    }
    let sum = 0;
    // using the for-of loop to get a sum of all elements
    for (let element of dynamicArray) {
      sum += element;
    }
    output.innerHTML += "The array of random number is " + dynamicArray + "<br/>";
    output.innerHTML += "The sum of all array elements is " + sum + "<br/>";
  </script>
</body>
</html>

使用array.reduce()方法對動態陣列的所有數字求和

array.reduce()方法透過執行多個操作將陣列簡化為單個元素。我們可以建立一個變數來儲存所有陣列元素的總和,並透過將每個元素新增到sum變數中來減少陣列。

語法

使用者可以按照以下語法使用reduce()方法對動態陣列的所有元素求和。

let sumOfArray = inputArray.reduce((element, currentSum) => element + currentSum, 0)

在上面的語法中,element是陣列的元素,currentSum是直到第i個索引的所有陣列元素的總和,而陣列的sum包含所有陣列元素的最終總和。

示例3

在下面的示例中,我們透過獲取使用者輸入來建立動態陣列。此外,使用者可以注意到我們在提示符前使用了“+”一元運算子來將字串轉換為數字。

最後,我們使用array.reduce()方法對儲存在陣列中的所有使用者輸入求和。

<html>
<body>
   <h2>Using the <i> array.reduce() method </i> to add all elements of the array of numbers of dynamic length</h2>
   <div id="output"></div>
   <script>
      let output = document.getElementById('output');
      let arrayLen = +prompt("Enter any number to create array of that length", 10);
      let inputArray = [];
      for (let i = 1; i <= arrayLen; i++) {
         inputArray[i] = +prompt("Enter " + i + "th number value", 5);
      }
      let sumOfArray = inputArray.reduce((element, currentSum) => element + currentSum, 0)
      output.innerHTML += "The length of the array is " + arrayLen + "<br/>";
      output.innerHTML += "The array of random number is " + inputArray + "<br/>";
      output.innerHTML += "The sum of all array elements is " + sumOfArray + "<br/>";
   </script>
</body>
</html>

我們學習瞭如何在JavaScript中建立動態長度的陣列。此外,我們還學習瞭如何使用for迴圈和reduce()方法對動態長度陣列的所有元素求和。我們也可以使用while迴圈。

更新於:2023年2月16日

971 次瀏覽

啟動您的職業生涯

透過完成課程獲得認證

開始
廣告
© . All rights reserved.