输出数组的全集

96 阅读1分钟

数组的全集 [1, 2] 的结果为 [ [], [ 1 ], [ 2 ], [ 1, 2 ] ]

var arr = [1, 2, 3, 4, 5];
function all (arr) {
  var result = [[]];
  var i=0;
  while (i<arr.length) {
    let temp = [...result];
    temp.forEach(item => {
      var tmepArr =  item.concat(arr[i])
      result.push(tmepArr);
    })
    i++;
  }
}
all(arr);

使用的是concat 这个不会改变原本的数组 每次在原本的数组上添加 index 就可以 时间复杂度应该是 On