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

jpa*_*app 2 javascript arrays multidimensional-array

我在 js 中有以下数组:

var list = [
  ['nice', 'delicious', 'red'],
  ['big', 'tiny'],
  ['apple']
];
Run Code Online (Sandbox Code Playgroud)

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

['nice', 'big', 'apple']
['delicious', 'big', 'apple']
['red', 'big', 'apple']
['nice', 'tiny', 'apple']
...
Run Code Online (Sandbox Code Playgroud)

实现这一目标的最佳/最雄辩的方法是什么?

Kub*_*tek 5

我试图想出一些非常花哨的东西,比如递归或一堆地图和减少,但这个问题似乎不够复杂,无法证明与以下不同的东西:

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);
Run Code Online (Sandbox Code Playgroud)