Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays nodejs中跨阵列的所有可能组合_Arrays_Node.js_Algorithm - Fatal编程技术网

Arrays nodejs中跨阵列的所有可能组合

Arrays nodejs中跨阵列的所有可能组合,arrays,node.js,algorithm,Arrays,Node.js,Algorithm,假设我有三个数组: var arr1 = ['red', 'orange', 'yellow',]; var arr2 = ['car', 'bus']; var arr3 = ['china']; 如何获得以下组合: 1.订单事宜, 2.每个结果(可以是数组)应包含每个arr的0..1个元素 3.arr1、arr2、arr3的元素可以出现0..1次: red,car,china red,china,car car,red,china car,china,red china,car,red

假设我有三个数组:

var arr1 = ['red', 'orange', 'yellow',];
var arr2 =  ['car', 'bus'];
var arr3 =  ['china'];
如何获得以下组合:
1.订单事宜,
2.每个结果(可以是数组)应包含每个arr的0..1个元素
3.arr1、arr2、arr3的元素可以出现0..1次:

red,car,china
red,china,car
car,red,china
car,china,red
china,car,red,
china,red,car

red,bus,china
red,china,bus
bus,red,china
bus,china,red
china,bus,red,
china,red,bus

orange,car,china
orange,china,bus
bus,orange,china
bus,china,orange
china,bus,orange,
china,orange,bus

orange,bus,china
orange,china,bus
bus,orange,china
bus,china,orange
china,bus,orange,

yellow,car,china
yellow,china,car
car,yellow,china
car,china,yellow
china,car,yellow,
china,yellow,car


yellow,bus,china
yellow,china,bus
bus,yellow,china
bus,china,yellow
china,bus,yellow,
china,yellow,bus

red,car
car,red

red,bus
bus,red

orange,car
car,orange,

orange,bus
bus,orange,

yellow,car
car,yellow,

yellow,bus
bus,yellow,

red,china
china,red,

orange,china
china,orange,

yellow,china
china,yellow,

car,china
china,car,

bus,china
china,bus,

red, 
orange, 
yellow, 
car, 
bus, 
china, 
我不知道如何控制每个arr元素中的出现时间,我的代码如下:

function get_titles_appearances(titles_columns) {
    titles_columns = titles_columns || [];
    var n = titles_columns.length;
    if (n === 0) { return [] }
    if (n === 1) { return titles_columns[0] }

    var save = function () {
        var m = groups.length, c = [];
        while (m--) { c[m] = groups[m] }
        rtn.push(c);
    }
    var i = 0, len = 0, counter = [], groups = [], rtn = [];

    for (; i < n; i++) {
        counter[i] = 0;
        groups[i] = titles_columns[i][0];
    }
    save();

    while (true) {
        i = n - 1, len = titles_columns[i].length;
        if (++counter[i] >= len) {
            while (counter[i] >= len) {
                if (i === 0) { return rtn }
                groups[i] = titles_columns[i][0];
                counter[i--] = 0;
                counter[i]++;
                len = titles_columns[i].length;
            }
        }
        groups[i] = titles_columns[i][counter[i]];
        save();
    }
    }

                _.forEach(get_titles_appearances(titles_columns_config_default), function (value) {
                    // titles_appearances.push(  _.join(value, '')+"':'"+_.join(value, ','))
                    titles_appearances = titles_appearances+"{"+ _.join(value, '')+":"+_.join(value, ',')+"},"
                })
        titles_columns_config_default refer to [arr1,arr2,arr3]
函数获取标题外观(标题列){
titles_columns=titles_columns | |[];
var n=标题和列的长度;
如果(n==0){return[]}
如果(n==1){返回标题\u列[0]}
var save=函数(){
var m=groups.length,c=[];
而(m--){c[m]=群[m]}
rtn.push(c);
}
变量i=0,len=0,计数器=[],组=[],rtn=[];
对于(;i=len){
while(计数器[i]>=len){
如果(i==0){return rtn}
组[i]=标题和列[i][0];
计数器[i--]=0;
计数器[i]++;
len=标题\列[i]。长度;
}
}
组[i]=标题和列[i][counter[i]];
save();
}
}
_.forEach(获取标题\外观(标题\列\配置\默认)、函数(值){
//标题u外观.push(u.join(值,)+“:”“+u.join(值,”,”)
titles\u外观=titles\u外观+“{”+\u.join(值,)+”:“+\u.join(值,,)+”
})
标题\列\配置\默认值参考[arr1、arr2、arr3]

请不要发布编程作业。发布关于您编写的代码的问题。我想您应该首先检查排列与组合您错过了一些结果,其中包括所有1和0元素的结果。thx各位,我做了一些编辑,如果仍然不正确,我可以删除它不,这样更好。缩进应该是固定的,这样就可以了!请不要发布编程作业。发布关于您编写的代码的问题。我想您应该首先检查排列与组合您错过了一些结果,其中包括所有1和0元素的结果。thx各位,我做了一些编辑,如果仍然不正确,我可以删除它不,这样更好。缩进应该是固定的,这样就可以了!