Удалить элементы из массива с другим массивом, содержащим дубликаты javascript - PullRequest
0 голосов
/ 16 февраля 2020

У меня есть 2 массива, я хочу удалить элементы из первого массива со вторыми, только один раз сохранив другие дубликаты, которые могут быть:

array1 = [1,1,1,1,2,2,2,2];
array2 = [1,1,2];

//resultingArray = [1,1,2,2,2];

Кажется, что все ответы, которые я получил, о удаление дубликатов при поиске этого ..

Мне интересно, есть ли способ сделать это с filter, но кажется, что он фильтрует все записи

resultingArray = array1.filter(function(el){
   return array2.indexOf(el) === -1;
});

//resultingArray = [];

Другой способ я мог бы подумать об удалении каждого из элементов массива один за другим, как это

for( var i = 0; i < arr.length; i++){ 
   if ( arr[i] === Number) {
     arr.splice(i, 1);
     i = arr.length;
};

Но, похоже, это не лучший способ сделать это?

И снова разница между этими массивами удалит все дублированные элементы

Буду признателен за лучший метод для этого или указания для дублированных сообщений, которые я не смог найти !!

1 Ответ

1 голос
/ 16 февраля 2020

Для этого вы можете l oop - array2 удалить первый соответствующий элемент, соответствующий текущему значению в array1. Как то так:

let array1 = [1,1,1,1,2,2,2,2];
let array2 = [1,1,2];

array2.forEach(i => array1.splice(array1.indexOf(i), 1));

console.log(array1);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...