求助JS二维数组从N个项取M个进行排列的组合算法函数如数组:arr1=[[1,2,3],[3,6],4,6,[3,4]];取4项的排列组合为1、[[1,2,3],4,6,[3,4]]2、[[1,2,3],[3,6],6,[3,4]]3、[[1,2,3],[3,6],4,[3,4]]4、[[1,2,3],[3,6],4,6]5、[[3,6],4,6
来源:学生作业帮助网 编辑:六六作业网 时间:2024/11/24 07:18:37
求助JS二维数组从N个项取M个进行排列的组合算法函数如数组:arr1=[[1,2,3],[3,6],4,6,[3,4]];取4项的排列组合为1、[[1,2,3],4,6,[3,4]]2、[[1,2,3],[3,6],6,[3,4]]3、[[1,2,3],[3,6],4,[3,4]]4、[[1,2,3],[3,6],4,6]5、[[3,6],4,6
求助JS二维数组从N个项取M个进行排列的组合算法函数
如数组:arr1=[[1,2,3],[3,6],4,6,[3,4]];取4项的排列组合为
1、[[1,2,3],4,6,[3,4]]
2、[[1,2,3],[3,6],6,[3,4]]
3、[[1,2,3],[3,6],4,[3,4]]
4、[[1,2,3],[3,6],4,6]
5、[[3,6],4,6,[3,4]]
五种结果,其中m=5,n=4.
要求m,n为随机的,返回值的结果为以上五种结果组成的数组,即return arr2=[[[1,2,3],4,6,[3,4]],[[1,2,3],[3,6],6,[3,4]],[[1,2,3],[3,6],4,[3,4]],[[1,2,3],[3,6],4,6],[[3,6],4,6,[3,4]]];
求助JS二维数组从N个项取M个进行排列的组合算法函数如数组:arr1=[[1,2,3],[3,6],4,6,[3,4]];取4项的排列组合为1、[[1,2,3],4,6,[3,4]]2、[[1,2,3],[3,6],6,[3,4]]3、[[1,2,3],[3,6],4,[3,4]]4、[[1,2,3],[3,6],4,6]5、[[3,6],4,6
var arr1 = [];//你的原始数组
function getArr(m,n){
var rt = [];
for(var i=0;i<m;i++){
var arr = arr1.concat();
arr.splice(i,1);
getNext(arr,n-1);
}
return rt;
function getNext(arr,n){
if(!n){
return rt.push(arr);
}
for(var i=0;arr[i];i++){
var _arr = arr.concat();
_arr.splice(i,1);
getNext(_arr,n-1);
}
}
}
getArr(arr1.length,arr1.length - (arr1.length * Math.random() | 0));//这个也是随机的 m应该就是arr1数组的长度 n要说才是真正随机 第二个参数实际是m-n