javascript中的ODRERERED配对函数

javascript中的ODRERERED配对函数,javascript,arrays,angularjs,Javascript,Arrays,Angularjs,我有四个这样的数组 var Broker = ['A', 'B', 'C']; var Currency = ['C', 'D', 'E']; var Time = ['F', 'G', 'H', 'I']; var Mode = ['J', 'K', 'L']; 所以,当用户从每个多选下拉列表中选择多选字段时,我想列出所有与所选项目配对的可能性 示例如果用户从代理中选择A和B,从货币中选择C,从时间中选择F、G,从模式中选择J,则配对可能性应存储在另一个单独的数组中,如下所示 var pai

我有四个这样的数组

var Broker = ['A', 'B', 'C'];
var Currency = ['C', 'D', 'E'];
var Time = ['F', 'G', 'H', 'I'];
var Mode = ['J', 'K', 'L'];
所以,当用户从每个多选下拉列表中选择多选字段时,我想列出所有与所选项目配对的可能性 示例
如果用户从代理中选择A和B,从货币中选择C,从时间中选择F、G,从模式中选择J,则配对可能性应存储在另一个单独的数组中,如下所示
var paired=[{borker:A,货币:C,时间:F,模式:J},{borker:A,货币:C,时间:G,模式:J},{borker:A,货币:C,时间:F,模式:J},{borker:B,货币:C,时间:F,模式:J},{borker:B,货币:C,模式:K},{borker:B,货币:C,时间:F,模式:L}];

我可能错过了配对数组中的项目,但我需要所有选定数组中至少一个唯一的项目。这是一种集合。你们知道我如何获得这种结果吗。

这段代码创建了一个名为
排列
的数组,它为每种可能的选择排列保存一个对象。嵌套for循环是排列的技巧

var Broker = ['A', 'B', 'C'];
var Currency = ['C', 'D', 'E'];
var Time = ['F', 'G', 'H', 'I'];
var Mode = ['J', 'K', 'L'];
var permutations = [];
for(var i = 0; i < Broker.length; i++) {
    for(var j = 0; j < Currency.length; j++) {
        for(var k = 0; k < Time.length; k++) {
            for(var l = 0; l < Mode.length; l++) {
                permutations.push({
                        borker:Broker[i],
                        currency:Currency[j],
                        time:Time[k],
                        mode:Mode[l]
                });
            }
        }
    }
}
var代理=['A','B','C'];
var货币=['C','D','E'];
变量时间=['F','G','H','I'];
变量模式=['J','K','L'];
var置换=[];
对于(var i=0;i
{borker:A,货币:C,时间:F,模式:J}
重复,
{borker:B,货币:C,时间:F,模式:L}
未选择。除此之外,它只是生成排列。是的,那么我如何在javascript@zerkmsy中进行这种排列你现在有了一个关键字,你是否尝试过进行任何研究?好的,使用一些经纪人和一些货币以及其他选项可能会很好,但是如果有数千名经纪人和所有可用货币,会发生什么,再加上许多其他的选择?@Rolice:排列确实呈指数增长,但这似乎仍然是确定排列的最有效的迭代方法。如果有那么多选项,我肯定会质疑计算排列,但这似乎确实回答了问题。@lyjackal,我认为答案是基于问题下方的成员评论。它在数学上是正确的,这样所有的排列都将被覆盖。但是在用户询问的情况下,我认为他可能需要一些非常简单的映射(即使使用静态映射数据)。