簡體   English   中英

如何在 JavaScript 范圍內乘以數字

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM