javascript - 从javascript中的多维数组中获取所有变体

标签 javascript arrays multidimensional-array

<分区>

我在 js 中有以下数组:

var list = [
  ['nice', 'delicious', 'red'],
  ['big', 'tiny'],
  ['apple']
];

我想获得所有可能的变体,例如:

['nice', 'big', 'apple']
['delicious', 'big', 'apple']
['red', 'big', 'apple']
['nice', 'tiny', 'apple']
...

实现此目标的最佳/最 Eloquent 方法是什么?

最佳答案

我试图想出一些非常奇特的东西,比如递归或 maps 和 reduce 的堆栈,但是这个问题似乎没有复杂到足以证明不同于以下内容的东西:

var result = list[0].map(function(item) { return [item]; });

for (var k = 1; k < list.length; k++) {
    var next = [];
    result.forEach(function(item) {
        list[k].forEach(function(word) {
            var line = item.slice(0);
            line.push(word);
            next.push(line);
        })
    });
    result = next;
}

console.log(result);

关于javascript - 从javascript中的多维数组中获取所有变体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35003423/

相关文章:

javascript - 添加时不正确的 Javascript 日期?

c++ - 对动态数组使用重载的 << 运算符

ruby-on-rails - Rails ActiveRecord update_all id 数组

c - 如何为指针和三维数组动态分配内存

php - 如何在PHP中结构化显示一个多维数组?

javascript - jQuery-HTML : Display Two multiple feeds into one

javascript - 如何在不使用 onclick 或 onmousedown 的情况下从 anchor 的 href 属性中停止事件传播

javascript - 如何使用排序数组填充下拉菜单

javascript - Jquery 无法访问循环外的数组

从开始日期到结束日期的 PHP 空闲时间 block