JavaScriptを学んでいますが、私はFactorialsのこのソリューションを考え出しました。私はいくつかのフィードバックを得たいと思います。 これは効率的でしょうか? JavaScriptを使用したファクタリール
function factorialize(num) {
var total= [];
if(num!==0){
for(var i=1; i<=num; i++){
total.push(i);
}
var newTotal = total.reduce(function(a,b){
return a*b;
});
return newTotal;
}else {
return 1;
}
}
console.log(factorialize(6));
私はオンラインで見つける読み、理解しやすいです。この他の方法で、私は単にこの方法を考えることはできません。
非再帰的に再帰的に
var factorial = function(n) {
if(n == 0) {
return 1
} else {
product = 1;
for(i = 1; i <= n; i++) {
product *= i;
}
return product;
}
}
console.log(factorial(num));
:それについて批判することができるもの、それはメモリと少し無駄であるということですが、
var factorial = function(n) {
if(n == 0) {
return 1
} else {
return n * factorial(n - 1);
}
}
console.log(factorial(num));
"私はいくつかのフィードバックを得たい"このサイトではあまりにも曖昧です。特に懸念がある場合は、教えてください。そうでない場合は、[コードレビューサイト](https://codereview.stackexchange.com/)でこの質問をしてください。 –
最初の方法は面白いです。数値を配列に入れてからarray.reduceメソッドを使います。単純に乗算するより効率が悪くなります。主に配列のアクセスが必要なためです。再帰的メソッドは多くの関数呼び出しを必要とするため、単純なループよりも効率が悪いです。すべてのメソッドはプログラミングの概念を導入するのに便利ですが、最も実用的ではありません。 –
また、最初は配列を使ってリソースを無駄にしていると思います。私はちょうど再帰的または非再帰的な解決策のような単純なアプローチを持っていないようです。バマー! – crg821