如何优化此JavaScript PowerSet函数?

问题描述

所以我在这里看两件事。首先,我试图在将字符串推送到输出集时删除逗号。我正在做什么,但看起来草率,我知道我可以更好地对其进行优化。如何全面改善呢?

第二,我希望输出在进入双字符之前先读取“ x”,“ y”,“ z”,但是如您所见,我将得到“ x”,“ y”,“ xy”,“ z”如何将“ xy”替换为“ z”?

代码

function powerSet(inputSet) {
  var outputSet = [];
  
  for (var i = 0; i < Math.pow(2,inputSet.length); i++) {

    var temp = [];
    for (var j = 0; j < inputSet.length; j++) {

      if (i & (1 << j)) {
        temp.push(inputSet[j]); 
      }
    }
    outputSet.push(temp.toString().replace(',','').replace(',''));
  }
  return outputSet;
}

var input = ['x','y','z'];

var powerSetResult = powerSet(input);

console.log(powerSetResult);

当前输出

["","x","y","xy","z","xz","yz","xyz"]

所需的输出

["","xyz"]

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)