#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);