[英]How to multiply numbers in a range in JavaScript
如果從 1 到 n 的所有數字相乘,我試圖找到一個數字的值。 例如 5 = 120 ( 1 * 2 * 3 * 4 * 5 )
但是 output 始終為零,但如果我將*
運算符更改為+
,我似乎得到了對數組求和的值。
有沒有人對我哪里出錯有任何建議或指示?
function multiValueMult(n) { cont arr = [...Array(n).keys()].reduce.reduce((range, n) => range * n, 0; return arr }
只需將0
切掉
const multiValueMult = n => [...Array(n + 1).keys()] // 0,1,2,3,4,...,n.slice(1) // drop the leading 0.reduce((range, n) => range * n); console.log(multiValueMult(5))
當您使用鍵[...Array(n + 1).keys()]
創建數組時,它會產生[0,1,2,3]
所以你也是
1*0 and then 0*1 and then 0*2 and then 0*3
所以你不需要零....
使用切片
[...Array(n + 1).keys()].slice(-n).reduce((range, n) => range * n, 1)
更好的選擇是在數組范圍內少生成一個,在 reduce 中添加一個
[...Array(n).keys()].reduce((range, n) => range * (n + 1), 1)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.