根据javascript中的另一个对象数组过滤对象数组

时间:2020-06-02 15:23:44

标签: javascript arrays object compare

我有一系列消息,例如

private func renderPolicy(
    isEnabled: Bool,
    resource: ChosenResource<Notice>,
    message: Chat.Message.Incoming,
    ) -> Node<NodeId> {
    if case .privacyNotice(text: let text, resource: _) = message.content {
        return Node(
        component: Component.Message(
            ....
            text: text,
            ....
        )
    } else {
       // handle the other casese
    }

}

和另一个数组

oldMessages = [ {id:1,message:'message_A'} , {id:2,message:'message_B'} ]

如何通过将newMessages = [ {id:1,message:'message_A'} , {id:2,message:'message_B'} , {id:3,message:'message_C'} ] {id:3,message:'message_c'}进行比较,只得到部分oldMessages? 我必须仅根据其ID比较它们。

1 个答案:

答案 0 :(得分:1)

您可以使用数组.find()这样的方法轻松完成此操作:

const oldMessages = [ {id:1,message:'message_A'} , {id:2,message:'message_B'} ]
const newMessages = [ {id:1,message:'message_A'},{id:2,message:'message_B'} , {id:3,message:'message_C'} ]
const data = newMessages.find(r=> !oldMessages.map(x=>x.id).includes(r.id))

console.log( data )

相关问题