在遵守顺序的同时递归构造所有可能组合的JavaScript数组

亚伦·坎宁顿

我很难将以下概念纳入代码中:

假设我们得到以下数组:

[
    'h1,h2',
    'span,style'
]

我希望从中获得以下输出:

[
    'h1 span',
    'h1 style',
    'h2 span',
    'h2 style
]

这样我们就有了一个字符串数组,其中包含原始数组的所有组合,这也遵守顺序(因此span h1style h2无效)。

详细描述:我有一个单级字符串数组,这些字符串实际上是逗号分隔的值。我希望遍历此数组并将这些字符串以逗号分隔为一个新数组,并为该新数组中的每个索引构建一个新字符串,其中包含原始数组中后续索引中的所有其他拆分值。

我在尝试用JavaScript编程时遇到困难。我知道我将需要一些递归,但是我对如何做到这一点感到困惑。在尝试了各种不同且失败的方法之后,我目前有:

function mergeTagSegments(arr, i, s) {

    i = i || 0;
    s = s || '';

    if(!arr[i]) { return s; }

    var spl = arr[i].split(',');
    for(var j in spl) {
        s += spl[j] + mergeTagSegments(arr, i+1, s);
    }

    return s;

}

这也无法按预期工作。

我无法完成原本认为如此简单的任务,这让我感到有些尴尬。但我真的希望从中学到东西。

在此先非常感谢您的建议和技巧。

卡斯珀莫希

您的思路正确。递归无疑是要走的路。我在下面实现了建议的解决方案,该解决方案应该为您提供所需的输出。

var values = ['h1,h2', 'span,style'];

function merge(input, index) {
    var nextIndex = index + 1;
    var outputArray = [];
    var currentArray = [];

    if(index < input.length) {
        currentArray = input[index].split(',');
    }

    for(var i = 0, end = currentArray.length; i < end; i++) {               
        if(nextIndex < input.length) {
            merge(input, nextIndex).forEach(function(item) {
                outputArray.push(currentArray[i] + ' ' + item);
            });
        }
        else {
            outputArray.push(currentArray[i]);
        }
    }

    return outputArray;
}

var output = merge(values, 0, '');
console.log(output);

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在遵守顺序的同时递归构造所有可能组合的JavaScript数组

来自分类Dev

数组中所有可能的组合-递归?

来自分类Dev

数组中所有可能的组合-递归?

来自分类Dev

数组的所有可能组合

来自分类Dev

两个向量的所有可能组合,同时保持R的顺序

来自分类Dev

使用递归打印所有可能的组合

来自分类Dev

以动态顺序尝试所有可能的组合

来自分类Dev

如何使用递归遍历数组中的所有可能组合?

来自分类Dev

使用所有可能的组合递归扩展字符串数组

来自分类Dev

从一串数字中查找所有可能的数字组合,同时保持原始顺序

来自分类Dev

不同数组项的所有可能组合

来自分类Dev

PostgreSQL在递归查询中找到所有可能的组合(排列)

来自分类Dev

如何编写一个递归方法以将String提升为所有可能的组合,而没有循环或数组?

来自分类Dev

如何构造所有可能组合的元组列表

来自分类Dev

查找数组元素的所有组合(JavaScript)

来自分类Dev

查找没有排列的数组的所有可能组合

来自分类Dev

数组的所有组合

来自分类Dev

从一组数组中递归地检索所有可能的组合。数组大小和组大小为1-X,其中X不是大数

来自分类Dev

Java搜索数组中所有可能的组合列表(算法)

来自分类Dev

从字符串数组获取所有可能的名称组合?

来自分类Dev

Java中数组的所有可能组合和子集

来自分类Dev

查找Python中所有可能的参数组合

来自分类Dev

如何从数组中获取所有可能的组合?

来自分类Dev

如何基于数组以所有可能的组合拆分单词

来自分类Dev

从两个数组创建所有可能的组合

来自分类Dev

从MongoDB聚合中的数组获取所有可能的组合

来自分类Dev

数组中所有可能的总和以及组合的投影

来自分类Dev

Java中数组的所有可能组合和子集

来自分类Dev

查找2个数组的所有可能的对组合

Related 相关文章

  1. 1

    在遵守顺序的同时递归构造所有可能组合的JavaScript数组

  2. 2

    数组中所有可能的组合-递归?

  3. 3

    数组中所有可能的组合-递归?

  4. 4

    数组的所有可能组合

  5. 5

    两个向量的所有可能组合,同时保持R的顺序

  6. 6

    使用递归打印所有可能的组合

  7. 7

    以动态顺序尝试所有可能的组合

  8. 8

    如何使用递归遍历数组中的所有可能组合?

  9. 9

    使用所有可能的组合递归扩展字符串数组

  10. 10

    从一串数字中查找所有可能的数字组合,同时保持原始顺序

  11. 11

    不同数组项的所有可能组合

  12. 12

    PostgreSQL在递归查询中找到所有可能的组合(排列)

  13. 13

    如何编写一个递归方法以将String提升为所有可能的组合,而没有循环或数组?

  14. 14

    如何构造所有可能组合的元组列表

  15. 15

    查找数组元素的所有组合(JavaScript)

  16. 16

    查找没有排列的数组的所有可能组合

  17. 17

    数组的所有组合

  18. 18

    从一组数组中递归地检索所有可能的组合。数组大小和组大小为1-X,其中X不是大数

  19. 19

    Java搜索数组中所有可能的组合列表(算法)

  20. 20

    从字符串数组获取所有可能的名称组合?

  21. 21

    Java中数组的所有可能组合和子集

  22. 22

    查找Python中所有可能的参数组合

  23. 23

    如何从数组中获取所有可能的组合?

  24. 24

    如何基于数组以所有可能的组合拆分单词

  25. 25

    从两个数组创建所有可能的组合

  26. 26

    从MongoDB聚合中的数组获取所有可能的组合

  27. 27

    数组中所有可能的总和以及组合的投影

  28. 28

    Java中数组的所有可能组合和子集

  29. 29

    查找2个数组的所有可能的对组合

热门标签

归档