我正试图解决这个问题:
https://www.coderbyte.com/editor/guest:First%20Factorial:JavaScript
我的想法是创建一个变量list
,它生成1和用户输入的所有数字num
。
我怎么说let list = //integers between 1 and (num)
然后将列表中的所有数字相乘?
你可以使用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 */
这就是我最终做的事情:
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()
,我定义了两个变量:num
和sum
。
num
获取用户输入的<input>
字段的值,其中id为"inputnum"
,sum
的起始值为1。
然后我们创建一个for-loop
,我们得到从1到(num)
的所有整数,然后将它们与sum = sum * i;
相乘