首頁 >web前端 >js教程 >如何使用 JavaScript 建立帶有數字的動態長度陣列並對數字求和?

如何使用 JavaScript 建立帶有數字的動態長度陣列並對數字求和?

PHPz
PHPz轉載
2023-08-26 19:29:06917瀏覽

如何使用 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-lop 對所有數組值求和。

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

<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個索引的所有元素的總和,而數組的總和包含所有數組元素的最終總和。

範例 3

在下面的範例中,我們透過取得使用者輸入來建立了動態數組。此外,使用者還可以注意到我們在提示符號之前使用了「 」一元運算子將字串轉換為數字。

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



   

Using the array.reduce() method to add all elements of the array of numbers of dynamic length

<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) =&gt; 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>

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

以上是如何使用 JavaScript 建立帶有數字的動態長度陣列並對數字求和?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:tutorialspoint.com。如有侵權,請聯絡admin@php.cn刪除