编写一个打印所有组合的通用函数。没有递归

时间:2017-05-09 21:53:37

标签: javascript arrays

我想打印数组中每个数字的所有可能组合,并将所有组合存储在数组中。

到目前为止,我只对扁平化阵列进行了展平。

我知道我需要一个以数组作为参数然后返回所有可能组合的函数。

let array = [
  [0, 1, 8],
  [2, 3],
  [4, 5]
 ];

const allPossibleCombinations = function (array) {
  const combinations = [];
        return array.reduce((p,c) =>
          [...p, ...c] );
};

console.log(allPossibleCombinations(array))

但我需要这个结果

[ '0 2 4',
  '0 2 5',
  '0 3 4',
  '0 3 5',
  '1 2 4',
  '1 2 5',
  '1 3 4',
  '1 3 5',
  '8 2 4',
  '8 2 5',
  '8 3 4',
  '8 3 5' ]

1 个答案:

答案 0 :(得分:0)

可能不是最有效的解决方案,但这会产生所需的输出:



const [one, two, three] = [
  [0, 1, 8],
  [2, 3],
  [4, 5]
];
const output = [];

for (let i of one) {
   for (let j of two) {
      for (let h of three) {
         output.push([i, j, h]);
      }
   }
}

console.log(output);