JavaScript-如何在1到用户输入的数字之间创建一个数字列表(数字),然后将这些数字相乘?

时间:2019-02-18 22:37:58

标签: javascript arrays list iteration

我正在尝试解决此问题:

https://www.coderbyte.com/editor/guest:First%20Factorial:JavaScript

我的想法是创建一个变量list,该变量生成介于1和用户以num输入的任何数字之间的所有数字。

我怎么说let list = //integers between 1 and (num)

然后将列表中的所有数字相乘?

2 个答案:

答案 0 :(得分:1)

您可以使用Array.from()Array.prototype.reduce()

const x = readline();

const array = Array.from({length: x}).map((_, i) => i + 1);
/* Now you have [1, 2, 3, ... , n] */

const result = array.reduce((previousItem, currentItem) => previousItem * currentItem);
/* Now you have 1 * 2 * 3 * ... * n */

答案 1 :(得分:1)

这就是我最终要做的:

HTML:

<html>
<head>
<title>multiply</title>

</head>

<body>
    Enter number : <input id="inputnum" />
    <input type ="button" value="Submit" onclick="multiply();" />
    <div id="outputnew"></div>
</body>
</html>

(JavaScript进入<head></head>部分):

<script>
function multiply() {
    let num = document.getElementById("inputnum").value;
    let sum = 1;

    for (let i=1; i<= num; i++) {
        sum = sum * i;
    }

    document.getElementById("outputnew").innerHTML  = "All of the values between 
    1 and " +num+ " multiplied together equals:" + sum ;

}
</script>

这将创建一个函数multiply(),其中定义了两个变量:numsum

num获取用户在<input>字段中输入ID为"inputnum"sum开头为1的任何值。

然后我们创建一个for-loop,在其中获取从1到(num)的所有整数,然后将它们与sum = sum * i;相乘