Удалить элементы массива по разным индексам - PullRequest
0 голосов
/ 04 ноября 2019

У меня есть массив, указанный ниже:

var box=[1,2,3,4,5] var sum=6;

В моем условии, если я проверяю, есть ли комбинация, доступная для переменной суммы, удалите элемент (ы) из массива. Например, в приведенном выше случае он удалит 6 из массива, если он доступен, иначе он будет искать комбинацию, т.е. (2,4), и удалит их из массива. Используя метод box.splice, я могу удалить только один индекс за один шаг. Есть ли другой способ, где, если комбинация найдена, она должна удалить оба элемента, т.е. (2,4) из массива за один шаг, учитывая тот факт, что это элементы с двумя разными индексами, которые не являются смежными.

1 Ответ

0 голосов
/ 04 ноября 2019

Для этого можно использовать метод 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;
});
...