2024-06-04 13:25:14
/**
*
* Created by zhou2003737
*/
/**
* 判断是否为number类型数据
* @param num
* @returns {boolean}
*/
function isNumber(num) {
return typeof num === 'number';
}
/**
* 判断是否为number类型数组
* @param numArr
* @returns {boolean}
*/
function isNumberArray(numArr) {
return Array.isArray(numArr) && numArr.every(isNumber);
}
/**
* 阶乘
* @param arr
* @returns {*}
*/
function factorial(arr) {
if(isNumberArray(arr)){
return arr.reduce(function (preAll, current) {
return preAll * current;
}, 1)
}
throw new Error('参数必须为全部为Number数组!');
}
var a = [1,2,3,4,5];
var result = factorial(a);
console.log(result); // 120
a = ['1',2,3,4,5];
result = factorial(a); // Error: 参数必须为全部为Number数组!
可以将结果返回一个新的数组里面吗?
阶乘不是返回一个最终数据吗?你所说的阶乘是什么意思?
2024-06-04 09:24:29
var arr = [1,3,5,7,9];
var a = 1;
for(var i = 0; i < arr.length; i++){
if(arr[i] > 0) {
for (var j = arr[i]; j > 0; j--){
a = a * j;
}
console.log("阶乘:" +arr[i]+"="+ a )
}
}
可以将得到的结果返回一新的数组吗
function aa() {
var arr = [1,3,5,7,9];
var arr1 = new Array(arr.length);
var a = 1;
for(var i = 0; i < arr.length; i++){
if(arr[i] > 0) {
for (var j = arr[i]; j > 0; j--){
a = a * j;
}
arr1[i] = a
}
}
return arr1;
}