NodeJS 如何过滤掉已经被赞的用户?

eyh26e7m  于 2022-12-18  发布在  Node.js
关注(0)|答案(1)|浏览(173)

我试图过滤除当前用户喜欢的人所有用户。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用户喜欢的对象数组,为了更容易理解:

byqmnocz

byqmnocz1#

您可以尝试使用ID current.liked进行过滤,如下所示

const filtered = resp.filter(user => !current.liked.includes(user))
setAllUsers(filtered)

如果我得到了你想要正确实现的东西,这应该可以工作。你可以使用underscore来总是验证它的对象属性。它很笨拙,但是应该可以工作。你也可以将这个逻辑移到useCallback

相关问题