1 回答
TA贡献1777条经验 获得超3个赞
var arr = ['A','B','C','D',"E","F","G"];
function show(arr,num){
debugger
var resultNum = 0;
var iNow = 1;
if(num==1){
return arr.length;
}
function change(arr,iNow){
for(var i=0;i<arr.length;i++){
var result = arr.concat();
result.splice(i,1);
if( iNow == num ){
resultNum += result.length;
}else{
change(result,iNow+1);
}
}
}
change(arr,iNow+1);
return resultNum;
}
console.log(show(arr,5));
打开控制台 执行一下, 按F10 逐步执行.
某些人说调不出, 只能说头脑逻辑性
不够. 不能怪方法不行.
首先接触到一个递归, 先看函数内部做了什么
, 看不懂, 调试一遍,
看内部的不懂的函数或分支 做了什么
.在不明白, 说明你的智商只如嘲讽一般.
其次这个函数目的就是算阶乘
.!arr.length/!(arr.length - 5)
叹号为阶乘
添加回答
举报