1.根据数组生成不重复组合
var kind1 = ['a1', 'a2', 'a3'];
var kind2 = ['b1', 'b2'];
var kind3 = ['c1', 'c2', 'c3'];
var result = [];
var result1 = [];
var collection = [];
collection.push(kind1, kind2, kind3);
效果相当于如下运行结果:
kind1.forEach(v => {
kind2.forEach(v1 => {
kind3.forEach(v2 => {
result.push(v + v1 + v2);
})
})
})
2.实现过程
//先算前两组组合
kind1.forEach(v => {
kind2.forEach(v1 => {
result1.push(v+v1)
})
});
//上一次计算结果和下一次结合
var next=function (prevResult,nextItem) {
var nextResult=[];
prevResult.forEach(v => {
nextItem.forEach(v1 => {
nextResult.push(v+v1)
})
});
return nextResult;
};
//已经计算出前两组的结果,并赋值
var newResult=result1;
if(collection.length>=3){
for(var i=2;i<collection.length;i++){
var tempNewResult=next(newResult,collection[i]);
newResult=tempNewResult;
}
}
console.log(newResult)