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,我认为答案是基于问题下方的成员评论。它在数学上是正确的,这样所有的排列都将被覆盖。但是在用户询问的情况下,我认为他可能需要一些非常简单的映射(即使使用静态映射数据)。