jQuery / Javascript多个数组合

我一直试图找到解决方案,但无济于事。 我想要实现的目标是能够找到多个列表的所有独特组合。 所以,假设我有3个复选框列表(但这是现实应用程序中的未知数字),颜色,大小,包大小。 列表中的项目将是unqiue。

[0] => ['blue', 'green'] [1] => ['small', 'medium', 'large'] [2] => ['Pack Of 6', 'Pack Of 8'] 

我想要“ 蓝色,小,6件装 ”,“ 蓝色,中号,6件装 ”,“ 蓝色,大号,6件装 ”,“ 蓝色,小号,8件装 ”,“ 蓝色,中号,包装8 “等。订购并不重要,但将其逻辑分组会很好。

我已经使用jQuery将列表拉入数组:

  options = []; jQuery('.option-types').each(function(){ opts = []; jQuery('input:checked', this).each(function(){ opts.push(jQuery(this).next().text()); }); options.push(opts) }); 

如果有一个递归的function路径来回答这个是理想的,就像我说的那样,列表的数量可以是任何东西,以及列表的内容。

希望你们和女孩们可以提供帮助,这是我的头脑。

干杯 – 丹

这应该工作:)

 var recursiveSearch; var possibilities = []; recursiveSearch = function (text, depth ) { text = text || ""; depth = depth || 0; for ( var i = 0; i < options[depth].length; i++ ) { // is there one more layer? if ( depth +1 < options.length ) // yes: iterate the layer recursiveSearch ( text + ((text=="") ? "" : " ") + options[depth][i] , depth +1 ); else // no: this is the last layer. we add the result to the array possibilities.push ( text + options[depth][i] ); } } recursiveSearch ( ); 

与你的arrays

 [0] => ['blue', 'green'] [1] => ['small', 'medium', 'large'] [2] => ['Pack Of 6', 'Pack Of 8'] 

结果会是这样的:

  1. 蓝色小包6
  2. 蓝色小包8
  3. 蓝色中等包装6
  4. ...

您可以将页面http://www.1your.com/drupal/FullCodeFindingAllStringCombinationsUsingRecursion中的Java源代码修改为JavaScript – 这个想法应该很容易理解,即使您没有太多接触Java。 我怀疑有一个现成的解决方案。