Javascript 将二维数组填充到表中(输出所有可能的组合)

Javascript 将二维数组填充到表中(输出所有可能的组合),javascript,jquery,html,arrays,loops,Javascript,Jquery,Html,Arrays,Loops,我有一个二维javascript数组var products=[[M,L,XL],[red,green],[longsleve,t-shirt]应该打印到HTML表中 每个表列应包含所有可能的组合之一。像这样: M red longsleve M red t-shirt M green longsleve M green t-shirt L red longsleve L red t-shirt L green longsleve L

我有一个二维javascript数组
var products=[[M,L,XL],[red,green],[longsleve,t-shirt]应该打印到HTML表中

每个表列应包含所有可能的组合之一。像这样:

M  red     longsleve
M  red     t-shirt
M  green   longsleve
M  green   t-shirt
L  red     longsleve
L  red     t-shirt
L  green   longsleve
L  green   t-shirt
XL red     longsleve
XL red     t-shirt
XL green   longsleve
XL green   t-shirt
示例数组有3个事实(大小、颜色、类型),但它也应该与只有1个事实(大小)或n个事实的其他数组一起使用


不幸的是,所有这些迭代似乎让我发疯。我不明白:(

您可以简单地使用三个嵌套循环。例如:

M  red     longsleve
M  red     t-shirt
M  green   longsleve
M  green   t-shirt
L  red     longsleve
L  red     t-shirt
L  green   longsleve
L  green   t-shirt
XL red     longsleve
XL red     t-shirt
XL green   longsleve
XL green   t-shirt
var产品=[
[M',L',XL'],
[‘红色’、‘绿色’],
['longsleve','t-shirt']
];
var table=document.querySelector('table');
对于(var i=0;i<乘积[0]。长度;i++){
对于(var j=0;j<乘积[1]。长度;j++){
对于(var k=0;k<乘积[2]。长度;k++){
表.insertAdjacentHTML('beforeend'[
'',
''+产品[0][i]+'',
''+产品[1][j]+'',
''+产品[2][k]+'',
''
].加入(“”);
}   
}
}
表{边框折叠:折叠;}
表td{border:1px#AAA solid;padding:5px;}

您可以简单地使用三个嵌套循环。例如:

M  red     longsleve
M  red     t-shirt
M  green   longsleve
M  green   t-shirt
L  red     longsleve
L  red     t-shirt
L  green   longsleve
L  green   t-shirt
XL red     longsleve
XL red     t-shirt
XL green   longsleve
XL green   t-shirt
var产品=[
[M',L',XL'],
[‘红色’、‘绿色’],
['longsleve','t-shirt']
];
var table=document.querySelector('table');
对于(var i=0;i<乘积[0]。长度;i++){
对于(var j=0;j<乘积[1]。长度;j++){
对于(var k=0;k<乘积[2]。长度;k++){
表.insertAdjacentHTML('beforeend'[
'',
''+产品[0][i]+'',
''+产品[1][j]+'',
''+产品[2][k]+'',
''
].加入(“”);
}   
}
}
表{边框折叠:折叠;}
表td{border:1px#AAA solid;padding:5px;}

您可以简单地使用三个嵌套循环。例如:

M  red     longsleve
M  red     t-shirt
M  green   longsleve
M  green   t-shirt
L  red     longsleve
L  red     t-shirt
L  green   longsleve
L  green   t-shirt
XL red     longsleve
XL red     t-shirt
XL green   longsleve
XL green   t-shirt
var产品=[
[M',L',XL'],
[‘红色’、‘绿色’],
['longsleve','t-shirt']
];
var table=document.querySelector('table');
对于(var i=0;i<乘积[0]。长度;i++){
对于(var j=0;j<乘积[1]。长度;j++){
对于(var k=0;k<乘积[2]。长度;k++){
表.insertAdjacentHTML('beforeend'[
'',
''+产品[0][i]+'',
''+产品[1][j]+'',
''+产品[2][k]+'',
''
].加入(“”);
}   
}
}
表{边框折叠:折叠;}
表td{border:1px#AAA solid;padding:5px;}

您可以简单地使用三个嵌套循环。例如:

M  red     longsleve
M  red     t-shirt
M  green   longsleve
M  green   t-shirt
L  red     longsleve
L  red     t-shirt
L  green   longsleve
L  green   t-shirt
XL red     longsleve
XL red     t-shirt
XL green   longsleve
XL green   t-shirt
var产品=[
[M',L',XL'],
[‘红色’、‘绿色’],
['longsleve','t-shirt']
];
var table=document.querySelector('table');
对于(var i=0;i<乘积[0]。长度;i++){
对于(var j=0;j<乘积[1]。长度;j++){
对于(var k=0;k<乘积[2]。长度;k++){
表.insertAdjacentHTML('beforeend'[
'',
''+产品[0][i]+'',
''+产品[1][j]+'',
''+产品[2][k]+'',
''
].加入(“”);
}   
}
}
表{边框折叠:折叠;}
表td{border:1px#AAA solid;padding:5px;}

如果要处理任意长度的数组,需要递归解决方案:

var产品=[['M'、'L'、'XL'],
[‘红色’、‘绿色’],
['longsleve','t-shirt'],
[‘男孩’、‘女孩’]
];
功能构建(arr,前缀){
var s='';
arr[0]。forEach(函数(val){
var sl=阵列切片(1),
out=前缀+“”+val;
如果(sl长度){
s+=构建(sl,out);
}
否则{
s+=输出;
}
});
返回s;
}//构建
document.body.innerHTML=''+build(products'')+'';
表格{
字体:12px verdana;
边界塌陷:塌陷;
}
运输署{
填充:0.2米;
边框:1px实心#ddd;

}
如果要处理任意长度的数组,需要递归解决方案:

var产品=[['M'、'L'、'XL'],
[‘红色’、‘绿色’],
['longsleve','t-shirt'],
[‘男孩’、‘女孩’]
];
功能构建(arr,前缀){
var s='';
arr[0]。forEach(函数(val){
var sl=阵列切片(1),
out=前缀+“”+val;
如果(sl长度){
s+=构建(sl,out);
}
否则{
s+=输出;
}
});
返回s;
}//构建
document.body.innerHTML=''+build(products'')+'';
表格{
字体:12px verdana;
边界塌陷:塌陷;
}
运输署{
填充:0.2米;
边框:1px实心#ddd;

}
如果要处理任意长度的数组,需要递归解决方案:

var产品=[['M'、'L'、'XL'],
[‘红色’、‘绿色’],
['longsleve','t-shirt'],
[‘男孩’、‘女孩’]
];
功能构建(arr,前缀){
var s='';
arr[0]。forEach(函数(val){
var sl=阵列切片(1),
out=前缀+“”+val;
如果(sl长度){
s+=构建(sl,out);
}
否则{
s+=输出;
}
});
返回s;
}//构建
document.body.innerHTML=''+build(products'')+'';
表格{
字体:12px verdana;
边界塌陷:塌陷;
}
运输署{
填充:0.2米;
边框:1px实心#ddd;

}
如果要处理任意长度的数组,需要递归解决方案:

var产品=[['M'、'L'、'XL'],
[‘红色’、‘绿色’],
['longsleve','t-shirt'],
[‘男孩’、‘女孩’]
];
功能构建(arr,前缀){
var s='1〕