繁体   English   中英

如何在Javascript中的数组中获取唯一的子数组

[英]How to get unique sub arrays within an array in Javascript

所以我有这个函数来确定 2 数组中两个数字的总和是否等于给定的目标数字。 该函数给出了实现目标数量的所有可能组合,但我只想要唯一的子数组。

let targetNum = 10
const array = [5,2,3,3,7,1,5]
const sumTwoNums = (array,num) => {
  let newArray = [];
  for (var i=0;i<array.length;i++) {
    for (var j=0;j<array.length;j++) {
      if(i!==j && array[i]+array[j]===num){
        newArray.push([array[i],array[j]]);
      }
    }
  }
  return newArray
}// returns [[5,5],[3,7],[3,7],[7,3],[7,3],[5,5]]

我能做些什么来解决这个问题?

我认为这个答案解决了你的问题。

function allPairs(ints, s) {
    var hash = Object.create(null),
        i,
        value,
        pairs = [];

    for (i = 0; i < ints.length; i++) {
        value = ints[i];
        if (hash[value]) pairs.push([s - value, value]);
        hash[s - value] = true;
    }
    return pairs;
}

console.log(allPairs([7, 2, 5, 8, 4, 3], 7));

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM