慕森王
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) 叹号为阶乘