E-ticaret projelerinde varyasyonlu yapıları kombine etmeyi bir çok yolla yapabilirsiniz. Ancak kod kalitesi ve performans olarak bakarsak, işinize yarayacak, benim de kullandığım, en basit çözüm aşağıdadır.
function combination(...args) {
var r = [], max = args.length-1;
function helper(arr, i) {
for (var j=0, l=args[i].length; j<l; j++) {
var a = arr.slice(0);
a.push(args[i][j]);
if (i==max)
r.push(a);
else
helper(a, i+1);
}
}
helper([], 0);
return r;
}
Kullanımı:
combination([0,1], [0,1,2,3], [0,1,2]);
Bir yanıt yazın