我试图过滤除当前用户喜欢的人所有用户。liked
是一个数组。allUsers
也是一个数组。我过滤了,如果用户登录,他不能看到他在日期应用程序显示用户自己。但过滤出那些用户已经喜欢,这是很难的用户。
useEffect(() => {
async function currentUser() {
const resp = await get(`user/${localSecret}`)
setCurrent(resp.data)
}
currentUser()
}, [])
useEffect(() => {
async function fetchUsers() {
const resp = await get(`api`)
// Filter out current user from displayed users
const filter = resp.filter(user => user.secret !== localSecret)
getAllUsers(filter)
}
fetchUsers()
}, [])
useEffect(() => {
async function getAllUsers() {
const resp = await get('api')
// Here I'm trying to filter out already liked users
// current.liked is an array of users objects
const filtered = resp.filter(user => user !== current.liked)
setAllUsers(filtered)
}
getAllUsers()
}, [])
这是mongodb用户喜欢的对象数组,为了更容易理解:
1条答案
按热度按时间byqmnocz1#
您可以尝试使用ID
current.liked
进行过滤,如下所示如果我得到了你想要正确实现的东西,这应该可以工作。你可以使用
underscore
来总是验证它的对象属性。它很笨拙,但是应该可以工作。你也可以将这个逻辑移到useCallback