数组阶乘。获取NaN输出。Javascript
我想要什么数组阶乘。获取NaN输出。Javascript,javascript,arrays,nested-loops,nan,factorial,Javascript,Arrays,Nested Loops,Nan,Factorial,我想要什么 Factorial: NaN 你可以利用Felix Kling回答中的这个事实函数,使用Array.map,然后使用Array.join Factorial: 120,24,6,2,1 代码中有错误(或至少是奇怪的)地方: f是一个数字。不过,您似乎希望函数返回数组 i0)acc*=n--; 返回acc; } 函数数组(参数){ var f=[]; 对于(var i=0;i请尝试以下代码 function factorial(n) { // function that
Factorial: NaN
你可以利用Felix Kling回答中的这个
事实
函数,使用Array.map
,然后使用Array.join
Factorial: 120,24,6,2,1
代码中有错误(或至少是奇怪的)地方:
是一个数字。不过,您似乎希望函数返回数组f
i0)acc*=n--; 返回acc; } 函数数组(参数){ var f=[]; 对于(var i=0;i请尝试以下代码
function factorial(n) { // function that computes the number n! var acc = 1; while (n > 0) acc *= n--; return acc; } function facArray(params) { var f = []; for (var i=0; i<params.length; i++) f[i] = factorial(params[i]); return f; }
这都在var数组=[5,4,3,2,1]; 写(“
factorial:”+factorial(数组).join(“,”); 函数阶乘(params){ var op=[]; 对于(i=params.length-1;i>=0;i--){ var f=1; 对于(j=0;j中,而
:D
从最后一个到第一个,一乘一var array = [5,4,3,2,1]; document.write("<br>Facorial: " + factorial(array).join(',')); function factorial(params){ var op = []; for (i = params.length - 1; i >= 0 ; i--){ var f = 1; for (j = 0; j < i; j++){ f = f * params[j]; } op.push(f); } return op; }
function factorial(n) { // function that computes the number n! var acc = 1; while (n > 0) acc *= n--; return acc; } function facArray(params) { var f = []; for (var i=0; i<params.length; i++) f[i] = factorial(params[i]); return f; }
var array = [5,4,3,2,1]; document.write("<br>Facorial: " + factorial(array).join(',')); function factorial(params){ var op = []; for (i = params.length - 1; i >= 0 ; i--){ var f = 1; for (j = 0; j < i; j++){ f = f * params[j]; } op.push(f); } return op; }
var array = [5,4,3,2,1]; var len = array.length-1; while(len--) { array[len] *= array[len+1]; } array;// [120, 24, 6, 2, 1]