87,907
社区成员
发帖
与我相关
我的任务
分享
<script>
var N = 4;
var cnt = [4, 2, 5, 3];
var temp = [0, 0, 0, 0];
var label = ['a', 'b', 'c', 'd'];
for (var size = N; size >= 1; --size)
for (var mask = (1 << size) - 1; mask < 1 << N;)
{
var total = 1;
for (var i = 0; i < N; ++i)
if (mask & 1 << i)
{
temp[i] = total;
total *= cnt[i];
}
for (var id = 0; id < total; ++id)
{
var s = "";
for (var j = 0; j < N; ++j)
if (mask & 1 << j)
{
var v = (id - id % temp[j]) / temp[j] % cnt[j];
s = s + label[j];
s = s + (v + 1) + " ";
}
s = s + "<br/>";
document.write(s);
}
var x = mask & - mask;
var y = mask + x;
mask = ((mask & ~y) / x >> 1) | y;
}
</script>
var a=[['a1','a2'],['b1','b2','b3','b4'],['c1','c2','c3']];
var r = [];
var i =0;
var a_len = a.length;
for(; i<a_len; i++) {
len = r.length;
for(v in a[i]) r.push([a[i][v]]);
for(j=0; j<len; j++) {
for(v in a[i])
r.push(r[j].concat(a[i][v]));
}
}
var f = [];
i=0;
for(;i<r.length;i++){
if(r[i].length == a_len){
f.push(r[i]);
}
}
var $a = f;
<script>
var arr1=['a1','a1','a2'];
var arr2=['b1','b1','b2'];
alert(get(arr1,arr2));//[[a1,b1],[a1,b2],[a2,b1],[a2,b2]]
function get(arr1,arr2)
{
var arr=[];
if(arr1.length<arr2.length)
{
var o=arr1;
arr1=arr2;
arr2=o;
}
arr1=checkArr(arr1);
arr2=checkArr(arr2);
for(var i=0;i<arr1.length;i++)
{
for(var j=0;j<arr2.length;j++)
{
var temp=[];
temp.push(arr1[i],arr2[j]);
arr.push(temp);
}
}
return arr;
}
function checkArr(arr)//数组去重
{
var json={};
var temp=[];
for(var i=0;i<arr.length;i++)
{
if(!json[arr[i]])
{
temp.push(arr[i]);
json[arr[i]]=1;
}
}
return temp;
}
</script>