一种排除特定数组的方法

时间:2019-04-18 20:54:06

标签: jquery arrays sorting

我有一个正在制作虚拟电话的项目,我需要删除特定的阵列-但我不知道该怎么做的方法。

目前,我还没有找到实现此目标的方法,我曾考虑过仅从数据库中获取特定信息,但在打开聊天消息时却可能会出现“加载”这样的问题。因此,我想从特定用户处拉出所有聊天记录,然后从数组中删除

当我进入jquery时,我的数据看起来像这样

var getmessages = [
       {
            sender: "114-5437",
            receiver: "545-3169",
            sender_msg: "Hejsa!!!",
            receiver_read: 0,
            date: "2019-04-10 22:14:34"
        },
        {
            sender: "545-3169",
            receiver: "114-5437",
            sender_msg: "Hejsa!!!",
            receiver_read: 0,
            date: "2019-04-10 22:14:34"
        },
        {
            sender: "545-3169",
            receiver: "999-5435",
            sender_msg: "Hejsa!!!",
            receiver_read: 0,
            date: "2019-04-10 22:14:34"
        },
        {
            sender: "545-3169",
            receiver: "114-5437",
            sender_msg: "Hejsa!!!",
            receiver_read: 0,
            date: "2019-04-10 22:14:34"
        },
    ];

$.each(getmessages, function () {
    });

所以在这里我要在每个数组中删除不是我需要的信息的所有数组

在这种情况下,我希望每个具有的数组元素

发送者/接收者为114-5437,和/或发送者/接收者为545-3169

所以它应该在数组中看起来像这样

var getmessages = [
       {
            sender: "114-5437",
            receiver: "545-3169",
            sender_msg: "Hejsa!!!",
            receiver_read: 0,
            date: "2019-04-10 22:14:34"
        },
        {
            sender: "545-3169",
            receiver: "114-5437",
            sender_msg: "Hejsa!!!",
            receiver_read: 0,
            date: "2019-04-10 22:14:34"
        },
        {
            sender: "545-3169",
            receiver: "114-5437",
            sender_msg: "Hejsa!!!",
            receiver_read: 0,
            date: "2019-04-10 22:14:34"
        },
    ];

$.each(getmessages, function () {
    });

我希望我解释得很好并且很有道理。谢谢

1 个答案:

答案 0 :(得分:2)

这就是过滤器的目的

var getmessages = [
       {
            sender: "114-5437",
            receiver: "545-3169",
            sender_msg: "Hejsa!!!",
            receiver_read: 0,
            date: "2019-04-10 22:14:34"
        },
        {
            sender: "545-3169",
            receiver: "114-5437",
            sender_msg: "Hejsa!!!",
            receiver_read: 0,
            date: "2019-04-10 22:14:34"
        },
        {
            sender: "545-3169",
            receiver: "999-5435",
            sender_msg: "Hejsa!!!",
            receiver_read: 0,
            date: "2019-04-10 22:14:34"
        },
        {
            sender: "545-3169",
            receiver: "114-5437",
            sender_msg: "Hejsa!!!",
            receiver_read: 0,
            date: "2019-04-10 22:14:34"
        },
    ];

console.log(getmessages.filter(item => item.sender === '114-5437' || item.sender === '545-3169' || item.receiver === '114-5437' || item.receiver === '545-3169'));