大神请进,一个急性逻辑问题

IvenOne 2016-06-14 07:24:56
1.动态创建一个不定数的二维数组,例如【 [0,1], [1,2,3], [3,4,5] 】或者 【 [0,1], [1,2,3], [2,9,7] , [3,4,5] 】 ....
2.随机删掉二维数组中的一个数组,比如【 [0,1], [1,2,3], [2,9,7] , [3,4,5] 】 二维数组中的 [2,9,7]
3.将剩余数组中的元素进行组合,比如,2中删掉 [2,9,7] 后剩余的为:【 [0,1], [1,2,3], [3,4,5] 】,组合后的元素为:
...全文
272 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
IvenOne 2016-06-15
  • 打赏
  • 举报
回复
引用 4 楼 u012418098 的回复:
[quote=引用 3 楼 dongheli 的回复:] 没人看的懂吗?
直接循环你删除以后的二维数组就可以了
      var array = [[0,1],[1, 2, 3],[2,9,7],[3,4,5]];
            var _arr = [];
            array[0].forEach(function (array1) {
                array[1].forEach(function (array2) {
                    array[3].forEach(function (array3) {
                        _arr.push([array1, array2, array3]);
                    })
                })
            });
            console.log(JSON.stringify(_arr))
[/quote] 不能用array[1] 这种形式,因为你没发确定有几个元素,比如现在可能有5个array 子元素,你的for 循环又得重新写
木头海上漂 2016-06-15
  • 打赏
  • 举报
回复
倒过来多层循环
jio可 2016-06-15
  • 打赏
  • 举报
回复
引用 3 楼 dongheli 的回复:
没人看的懂吗?
直接循环你删除以后的二维数组就可以了
      var array = [[0,1],[1, 2, 3],[2,9,7],[3,4,5]];
            var _arr = [];
            array[0].forEach(function (array1) {
                array[1].forEach(function (array2) {
                    array[3].forEach(function (array3) {
                        _arr.push([array1, array2, array3]);
                    })
                })
            });
            console.log(JSON.stringify(_arr))
IvenOne 2016-06-15
  • 打赏
  • 举报
回复
没人看的懂吗?
天际的海浪 2016-06-15
  • 打赏
  • 举报
回复
创建二维数组和删掉二维数组中的一个数组,比较简单就不说了, 数组元素组合如下

var arr = [[0,1],[1,2,3],[3,4,5]];
var narr = [[]];
for (var n = 0; n < arr.length; n++) {
	var tna = [];
	for (var j = 0; j < narr.length; j++)
		for (var i = 0; i < arr[n].length; i++)
			tna.push(narr[j].concat(arr[n][i]));
	narr = tna;	
}
alert(narr.join("\n"));
IvenOne 2016-06-15
  • 打赏
  • 举报
回复
本质就是动态的创建for 循环,不是写死for循环
引用 7 楼 KK3K2005 的回复:
看不出需求的难点在那里 能描述的这么清楚了 还能有什么问题?
KK3K2005 2016-06-15
  • 打赏
  • 举报
回复
看不出需求的难点在那里 能描述的这么清楚了 还能有什么问题?
IvenOne 2016-06-14
  • 打赏
  • 举报
回复
var aa=[1,2,3],bb=[1,2,3],cc=[1,2,3],dd=[1,2,3]; var zz=[aa,bb,cc,dd];//此处数组个数任意 var result=new Array();//结果保存到这个数组 function toResult(arrIndex,aresult) { if(arrIndex>=zz.length) {result.push(aresult);return;}; var aArr=zz[arrIndex]; if(!aresult) aresult=new Array(); for(var i=0;i<aArr.length;i++) { var theResult=aresult.slice(0,aresult.length); theResult.push(aArr[i]); toResult(arrIndex+1,theResult); } } toResult(0);//函数执行后result数组就是所需结果 稍微写点,以后在调试
IvenOne 2016-06-14
  • 打赏
  • 举报
回复
顶一下,别让沉了,在线等

87,910

社区成员

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

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