问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

求JS输出二维数组所有组合的函数12

发布网友 发布时间:2023-10-27 14:00

我来回答

2个回答

热心网友 时间:2024-12-01 11:25

给你个完美的递归算法,我敢说比他们的都好!

var array = [['A', 'B', 'C'], 'F', ['D', 'E'], 1, 'kyo', 'yugi111'];
var len = array.length;
var results = [];
var indexs = {};
function specialSort(start) {
    start++;
    if (start > len - 1) {
        return;
    }
    if (!indexs[start]) {
        indexs[start] = 0;
    }
    if (!(array[start] instanceof Array)) {
        array[start] = [array[start]];
    }
    for (indexs[start] = 0; indexs[start] < array[start].length; indexs[start]++) {
        specialSort(start);
        if (start == len - 1) {
            var temp = [];
            for (var i = len - 1; i >= 0; i--) {
                if (!(array[start - i] instanceof Array)) {
                    array[start - i] = [array[start - i]];
                }
                temp.push(array[start - i][indexs[start - i]]);
            }
            results.push(temp);
        }
    }
}

specialSort(-1);
console.log(results);

热心网友 时间:2024-12-01 11:26

arr = [["A","B","C"],"D",["E","F"],["J","G","H","I"]];
arr2 = [];
function all_arrs(arr,level,former){
if(arr.length == level + 1){
if(arr[level] instanceof Array){
for(var i = 0; i < arr[level].length; i++){
temp = former.slice(0);
temp.push(arr[level][i]);
arr2.push(temp);
}
}
else{
temp = former.slice(0);
temp.push(arr[level]);
arr2.push(temp);
}
}
else{
if(arr[level] instanceof Array){
for(var i = 0; i < arr[level].length; i++){
temp = former.slice(0);
temp.push(arr[level][i]);
all_arrs(arr,level+1,temp);
}
}
else{
temp = former.slice(0);
temp.push(arr[level]);
all_arrs(arr,level+1,temp);
}
}
}
all_arrs(arr,0,new Array(0));

其实我js不熟,所以有些地方可能比较繁琐。如果你有那几行重复代码的简单写法,一定要告诉我

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
请问昆山正仪到江苏省昆山市出口加工区新竹路99号 怎么坐班车最近? 跪求苏州神达电脑地址!!! 华为运动耳机挂脖式怎么配对 雅酷美挂脖式无线蓝牙防水耳机-运动时尚,自由畅听 已知函数f(x)=cos^2x-sin^2x+2根号3sinxcosx+1 原先微信有联系后来突然对方要求我对他进行朋友验证我没有他电话号码... 已知函数f(x)=cos^2x-sin^2x+2根号3sinxcosx 已知函数fx=cos^2*x-sin^2*x+2sinx*cosx,求fx的最小正周期,并求当... 已知函数f(x)=cos2x-sin2x 4sinx·cosx求f(x)的最小正周期,并求当x为... 已知f(x)=cos^2x-sin^x+2sinxcosx。①求函数最小正周期②当x∈【0... 从武汉富士康坐公交到书城路文治街坐那一路 从新建到文治街金地格林小城怎么坐公交车,最快需要 从友谊大道秦园居到文治街金地格林小城怎么坐公交车 从金地格林小城到供电公司怎么坐公交车,最快需要多久 歌词而论,张信哲翻唱的我相信,是不是最屌丝 从文治街金地格林小城到楚河汉街怎么坐公交车,最快 从南泥湾大道古田四路到文治街金地格林小城怎么坐公交 湖心亭看雪中一个字的翻译!6 手机系统升级的好还是不升级的好1222 ...长增加到二十八米宽不变,扩建后的菜园面积是多少 静坐常思己过,闲谈莫论人非。是什么意思?4208 我和我女朋友分手了 是我提出分手的的 可是我现在又很想她 做... 无痕接发大概多少钱?接全头,到腰或者臀,需要多少克发量? 全头接发一捆头发够不够 下列有关热化学方程式的叙述中,正确的是 ( ) A.含20.0g NaOH的稀溶 ... 急!!!我叫丹丹。亲们帮忙取个好点的英文名呀2 2014山东泰安市肥城市事业单位考试行测大纲解读? 我在长沙,要搬家,部分物品要打包,求推荐好的搬家公司1 长沙搬家注意事项有哪些1 如图是制取蒸馏水的简易装置,在试管a中加入约1/3 容积的水... 长沙搬家?长沙市万顺搬家公司?我想知道你们公司有多大?公司主...1 经常坐在电脑前脖子疼,怎么办?1 矿物质硅,和沥青...对人体会造成什么样的伤害....1  包粽子的叶子叫什么?12 ...只求P幽默一点搞笑一点。P的好的话再加50分! 跟女朋友分手了,可做梦老是梦到她!怎么办24 如何删除被宏杰加密并隐藏的文件,密码已忘记?2 美国商科研究生的学制介绍 更换后原来的好友还有吗? 丹丹前面家a开头英文怎么加好听 怀孕三个多月去酒吧喝酒会不会危险 而且会喝好多酒1 一年改2次的办法 一年内怎么改第二次 隐藏文件夹密码忘了怎么办 安装eclipse插件adt 出现这提示The operat... 因为诈骗被永久封了再创一个号实名会有影响吗? 大家好 请问新买的华为手机 系统一直从不更新 会怎样?谢谢!41 知道微信名称,但是我要加他的微信,怎不知道怎么加? 哪位电脑高手可以帮我远程看一下我家的C盘怎么这么挤啊?然后帮...2 甲状腺癌算重大疾病保险范围吗241