4*2*2, 16 sortes Permutations et combinaisons, puisque chaque tableau doit avoir un élément, alors pour tableau 1 : c(4,1)=4, tableau 2 : c(2,1) =2. , Tableau 3 : c(2,1)=2, Tableau 4 : c(1,1)=1, Multipliez chacun à nouveau et faites attention aux éléments répétés.
D'une manière générale, s'il y a plusieurs groupes, plusieurs boucles sont nécessaires. Il suffit de combiner les éléments à l'intérieur un par un. C'est la solution conventionnelle de js. Je ne sais pas s'il existe une meilleure.
var a = [1,2,3,4],
b = [5,6],
c = [7,8],
d = [9];
for(var i = 0; i < a.length; i++) {
for(var j = 0; j < b.length; j++) {
for(var k = 0; k < c.length; k++) {
for(var l = 0; l < d.length; l++) {
console.log(a[i] + '-' + b[j] + '-' + c[k] + '-' + d[l]);
}
}
}
}
function list(arr){
function newArr(arr){
var num=1;
arr.forEach((x)=>{
num*=x.length
})
var tem=[]
for(var i=0;i<num;i++){
tem[i]=[];
}
return tem
}
function numFn(num){
var pp=[];
var nums=list.length;
arr.forEach(function(x){
nums=nums/x.length
pp.push(x[nums==1?num%x.length:parseInt(num/nums)%x.length]);
})
return pp
}
var list=newArr(arr);
for(var j=0;j<list.length;j++){
list[j]=numFn(j)
}
return list
}
4*2*2, 16 sortes
Permutations et combinaisons, puisque chaque tableau doit avoir un élément, alors pour
tableau 1 : c(4,1)=4,
tableau 2 : c(2,1) =2. ,
Tableau 3 : c(2,1)=2,
Tableau 4 : c(1,1)=1,
Multipliez chacun à nouveau et faites attention aux éléments répétés.
D'une manière générale, s'il y a plusieurs groupes, plusieurs boucles sont nécessaires. Il suffit de combiner les éléments à l'intérieur un par un. C'est la solution conventionnelle de js. Je ne sais pas s'il existe une meilleure.