我很困惑。本质上,我试图创建一个函数,它将一个数字作为参考和一个数组,并且找到等于零的组合(参考数字和数组中的两个),但不会在subArray
中有任何重复的组合。避免插入子数组重复项
function helper(number, arr){
console.log(arr, 'this is arr')
let answer = [];
let subArray = []
for(let i = 0; i < arr.length; i++){
for(let y = i + 1; y < arr.length; y++){
var newCombo = [arr[i], arr[y]]
subArray.push(newCombo) <-- avoid duplicates here
}
}
subArray.forEach(combo =>{
var referenceAndArray = [number].concat(combo)
//result will check it adds up to zero
var result = referenceAndArray.reduce((accum, value) =>{
return accum += value;
},0)
if(result === 0){
answer.push(referenceAndArray)
}
})
return answer
}
helper(-1, [-1,-1,0,1,2] --> [ [-1, 0, 1 ], [-1, -1, 2] ]
我们可以假设数组从一开始就
使用Array.includes
我试图测试,但它似乎不具有子阵列以及工作排序。
发现仅有1个组合或者所有可能的组合? – luanped
找到所有可能的组合,没有任何重复 – Alejandro
数组通过身份而不是数值进行比较,所以'[]!== []' – elclanrs