所属分类:web前端开发
在 JavaScript 中,数组的长度始终是动态的。与其他编程语言一样,我们在创建数组时不需要定义数组的长度。因此,我们可以创建一个数组并将任意数量的元素推送到 JavaScript 数组中。在这里,我们将创建数组的动态长度并向其添加数字。之后,我们将对所有数字进行求和。本教程将教我们创建一个包含数字的动态长度数组,并使用 JavaScript 对数字求和。
我们可以使用 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 变量的每个元素。
在下面的示例中,我们使用 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>
在下面的示例中,我们从用户处获取了动态数组的长度。此外,我们还从用户那里获取数组的每个值。将用户输入存储到动态数组后,我们使用 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() 方法通过执行多个操作将数组缩减为单个元素。我们可以创建一个变量来存储所有数组元素的总和,并通过将每个元素添加到 sum 变量来减少数组。
用户可以按照下面的语法使用reduce()方法对动态数组的所有元素求和
let sumOfArray = inputArray.reduce((element, currentSum) => element + currentSum, 0)
在上面的语法中,element是数组的元素,currentSum是数组直到第i个索引的所有元素的总和,而数组的总和包含所有数组元素的最终总和。
在下面的示例中,我们通过获取用户输入创建了动态数组。此外,用户还可以注意到我们在提示符之前使用了“+”一元运算符将字符串转换为数字。
最后,我们使用 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 循环。