我有一个下面给出的数组:
var box=[1,2,3,4,5]
var sum=6;
在if条件下,我检查sum变量是否存在组合,请从数组中删除元素。例如,在上述情况下,它将从阵列中删除6
(如果可用),否则它将寻找组合,即(2,4)
并将其从阵列中删除。使用box.splice
方法,我只能一步删除一个索引。是否有其他方法可以找到组合,只要考虑到它们是两个不同索引处的不相邻元素,就可以一步将两个元素(即(2,4)
)从数组中删除。
答案 0 :(得分:0)
您可以使用filter方法来实现。
例如,如果您知道值的索引,则可以执行以下操作:
box = box.filter((num, index) => index !== index1 && index !== index2);
或者是更强大的解决方案:
const combination = [2, 4];
box = box.filter(num => {
if (combination.includes(num)) {
// remove first occurence of num from combination
return false;
}
return true;
});