javascript - 多个数组元素的组合

标签 javascript arrays algorithm

我有这种类型的数据

var arr = [
    ["A", "AA"],
    ["B"],
    ["C", "CC", "CCC"]
];

我想获得每个数组中所有元素的组合。例如

A B
A B C
A B CC
A B CCC
A C
A CC
A CCC
...
AA B CCC

注意单词的顺序是一样的,像这样不应该是B A C的组合之一.

我尝试了几种逻辑,但无法得到我要找的东西。我可以获得所有单词的所有排列和组合,但这不是我要找的。

请推荐

最佳答案

您基本上想要跨多个列表排列:

function permute(input)
{
  var out = [];

  (function permute_r(input, current) {
    if (input.length === 0) {
      out.push(current);
      return;
    }

    var next = input.slice(1);

    for (var i = 0, n = input[0].length; i != n; ++i) {
      permute_r(next, current.concat([input[0][i]]));
    }
  }(input, []));

  return out;
}

permute(arr);

关于javascript - 多个数组元素的组合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21952437/

相关文章:

javascript - 导入 redux store 未定义(加载顺序问题?)

java - 有没有办法将 char 循环到数组中?

c - 从 C 中的 void 函数返回二维数组

java - 根据Board数据结构Cell[][]中的编号获取Cell,无需经过2个FOR循环

c# - C#中位的快速排列

javascript - 印地语字体 slug 转换

javascript - 从 ztree 获取 JavaScript 中的选定值

python - 提高从已排序字符串中获取字母顺序的顺序复杂度

javascript - 我应该对没有数据库操作的方法使用 Meteor 方法 stub 吗?

c++ - Floyd-Warshall 算法实现不起作用