js 数组的组合

快跑稻草人 2017-09-12 02:53:12
我有n个数组,从n个数组里取m个组合,比如数组是这样的
a =[1,2]
b=[2,3]
c=[4,5]

取2个组合的话,结果是
[1,2],[1,3],[1,4],[1,5],[2,2],[2,3],[2,4],[2,5],[2,4],[2,5],[3,4],[3,5]

取3个组合的话结果是
[1,2,4],[1,3,4],[1,2,5],[1,3,5],[2,2,4],[2,3,4],[2,2,5],[2,3,5]

m和n是不固定的,但是m>=n
请问应该怎么做?
...全文
167 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
快跑稻草人 2017-09-12
  • 打赏
  • 举报
回复
谢谢各位,已经解决了,上边两个都不对
快跑稻草人 2017-09-12
  • 打赏
  • 举报
回复
引用 1 楼 jslang 的回复:
类似这个

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"));

你这个不对
天际的海浪 2017-09-12
  • 打赏
  • 举报
回复
类似这个

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,993

社区成员

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

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