Неправильная работа функции фильтра в массиве данныхJavascript

Форум по Javascript
Ответить
Anonymous
 Неправильная работа функции фильтра в массиве данных

Сообщение Anonymous »

Я делаю простое приложение, которое включает в себя поиск пользователя. В целом, поиск работает, но не так, как следовало бы. При поиске пользователи делятся на два блока - друзья из списка пользователей и глобальных пользователей. Друзья из списка друзей не должны появляться в глобальных пользователях. Я не понимаю, почему это происходит. < /P>
const searchResult = [
{
_id: '682dc4b5c6c0975928d2c5a8',
nickname: 'Test1'
},
{
_id: '682dc4c3c6c0975928d2c5a9',
nickname: 'Test2'
},
{
_id: '682a1294943779a5f41e3e26',
nickname: 'GlobalUser1'
},
{
_id:'682dc4a6c6c0975928d2c5a7',
nickname: 'Test3'
},
{
_id: '682edc075fa9f243b2cef5d5',
nickname: 'Test4'
},
{
_id: '682eebee62c0c2de682f0644',
nickname: 'GlobalUser2'
},
{ _id: '682edc675fa9f243b2cef5dd', nickname: 'Test5' }
];
< /code>
const userFriend = [
{
_id: '682dc4b5c6c0975928d2c5a8',
nickname: 'Test1'
},
{
_id: '682dc4c3c6c0975928d2c5a9',
nickname: 'Test2'
},
{
_id: '682dc4a6c6c0975928d2c5a7',
nickname: 'Test3'
},
{
_id: '682edc075fa9f243b2cef5d5',
nickname: 'Test4'
},
{ _id: '682edc675fa9f243b2cef5dd', nickname: 'Test5' }
]
< /code>
const searchTest = () => {
let globalUsers = [];
let userFriends = [];

if (userFriend.length === 0) {
globalUsers = searchResult;
} else {
userFriends = searchResult.filter(
(item) => userFriend.some((friend) => friend._id === item._id
))
if (userFriends.length > 0) {
globalUsers = searchResult.filter(
(item) => userFriends.some(
(friend) => friend._id !== item._id,
),
);
} else {
null;
}
}
const foundedList = { globalUsers, userFriends };
console.log(foundedList);
}

searchTest();


Подробнее здесь: https://stackoverflow.com/questions/796 ... data-array
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Javascript»