Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/464.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 记录不同数组_Javascript_Arrays_Console.log - Fatal编程技术网

Javascript 记录不同数组

Javascript 记录不同数组,javascript,arrays,console.log,Javascript,Arrays,Console.log,我试图在“console.log(partial)”下只填充一个不同的数组,例如,如果target=5,并且我有一组数字[1,1,1,1,2,2],子集将只给出这两个数组:[1,1,1,2]或[1,2,2]。但是,在我的控制台日志中,相同的2组数组被多次填充。我的代码有问题吗 function subsetSum(numbers, target, partial) { var s, n, remaining; partial = partial || []; // sum par

我试图在“console.log(partial)”下只填充一个不同的数组,例如,如果target=5,并且我有一组数字[1,1,1,1,2,2],子集将只给出这两个数组:[1,1,1,2]或[1,2,2]。但是,在我的控制台日志中,相同的2组数组被多次填充。我的代码有问题吗

function subsetSum(numbers, target, partial) {
  var s, n, remaining;

  partial = partial || [];

  // sum partial
  s = partial.reduce(function (a, b){
    return a + b;
  }, 0);

  // check if the partial sum is equals to target
 if (s === target) {
    console.log("%s=%s", partial.join("+"), target)
    console.log(partial)
    for(j = 0; j < partial.length; j++){
      if (partial[j] == 1){
      console.log("here")
      }
    }
  }

  if (s >= target) {
    return;  // if we reach the number why bother to continue
  }

  for (var i = 0; i < numbers.length; i++) {
    n = numbers[i];
    remaining = numbers.slice(i + 1);
    subsetSum(remaining, target,       partial.concat([n]));
  }
  return;
}
功能子功能(数字、目标、部分){
var s,n,剩余;
部分=部分| |[];
//部分和
s=部分还原(函数(a,b){
返回a+b;
}, 0);
//检查部分和是否等于目标值
如果(s==目标){
console.log(“%s=%s”,部分.join(“+”,目标)
console.log(部分)
对于(j=0;j=目标){
return;//如果我们达到了这个数字,为什么还要继续
}
对于(变量i=0;i
您可以获得多个

[1, 1, 1, 2, 2]
因为有多个元素具有相同的值

例如,如果您对值进行编号并仅取整数值,则可以看到这种情况

要排除相同的结果,您需要在结果集中进行搜索,并避免使用相同的数字集

函数子类(数字、目标、部分=[]){
常数
总和=部分减少((a,b)=>a+parseInt(b,10),0),
结果=[];
if(sum==target)返回[部分];
如果(总和>目标)返回[];
for(设i=0;iconsole.log(…a))
。作为控制台包装{最大高度:100%!重要;顶部:0;}