求解一个js属组对象排列组合算法

南意长安 2019-05-10 09:55:01
请问怎么由
const arr1 = [
{
"name":"尺寸",
"values":['s',' m',' 'l']
},
{
"name":"颜色",
"values":['黑','白']
},
...
]
得到数据arr2这种全排列组合,希望时间空间复杂度好一些,非常感谢
[
{
"type":[
{
"name":"尺寸",
"value":"s"
},
{
"name":"颜色",
"value":"黑"
}
]
},
{
"type":[
{
"name":"尺寸",
"value":"s"
},
{
"name":"颜色",
"value":"白"
}
]
},
{
"type":[
{
"name":"尺寸",
"value":"m"
},
{
"name":"颜色",
"value":"黑"
}
]
},
{
"type":[
{
"name":"尺寸",
"value":"m"
},
{
"name":"颜色",
"value":"白"
}
]
},
............
]
...全文
331 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
天际的海浪 2019-05-10
  • 打赏
  • 举报
回复
类似这个,把数据格式改成你那个就行

var arr = [
	["a","b"],
	["1","2"],
	["c","d"]
];
var sarr = [[]];
for (var i = 0; i < arr.length; i++) {
	var tarr = [];
	for (var j = 0; j < sarr.length; j++)
		for (var k = 0; k < arr[i].length; k++)
			tarr.push(sarr[j].concat(arr[i][k]));
	sarr = tarr;
}
alert(sarr.join("\n"));

87,989

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧