Как удалить массив на основе определенного значения?

#javascript

#javascript

Вопрос:

У меня есть два массива.

 var allAuth = [1, 2, 3, 4, 5, 6, 7, 8]
let thomasauth = [2, 3, 4, 5, 6, 7, 8]

let res = allAuth.filter(f => !thomasauth.includes(f));
  

Я возвращаю недостающее значение соответствия из allAuth массива, которое равно 1.

Я хочу удалить 1 из allAuth массива.

В настоящее время у меня есть

 let filteredArr = allAuth.filter(e => e !== res)
  

но это просто возвращает мне массив allAuth без удаления чего-либо.
мой желаемый результат должен быть

 let filteredArr = [2,3,4,5,6,7,8]
  

Кто-нибудь может помочь? Спасибо.

Комментарии:

1. Я хочу удалить 1 из массива allAuth. контракты с I возвращают недостающее значение соответствия из массива allAuth, которое равно 1. Если вы понимаете разницу, вы найдете свой ответ

Ответ №1:

Измените !thomasauth.includes(f) на thomasauth.includes(f) so, чтобы фильтровать только включенные элементы (в этом случае 1 будет исключен.)

 var allAuth = [1, 2, 3, 4, 5, 6, 7, 8]
let thomasauth = [2, 3, 4, 5, 6, 7, 8]

let res = allAuth.filter(f => thomasauth.includes(f));
console.log(res);  

Ответ №2:

Вы пробовали свой код? Вы увидите, что res на самом деле это массив, содержащий значения, которые вы хотите удалить ( [1] ), а не одно скалярное значение.

Итак, я думаю, вы намеревались сделать это:

 let filteredArr = allAuth.filter(e => !res.includes(e));
  

Ответ №3:

 var allAuth = [1, 2, 3, 4, 5, 6, 7, 8];
let thomasauth = [2, 3, 4, 5, 6, 7, 8];

let result = allAuth.filter(val => thomasauth.indexOf(val) !== -1);
console.log(result);