Javascript 如何从Vue JS中的数组元素进行筛选

Javascript 如何从Vue JS中的数组元素进行筛选,javascript,vue.js,vuejs2,Javascript,Vue.js,Vuejs2,我正在Vue Js 2.0中构建一个小应用程序,尝试过滤数组格式的元素,如果元素是单字符串,我将格式化如下: const search = this.search_by_name.toLowerCase() const searchContact = this.search_by_contact.toLowerCase() return this.meetings .map(i => ({ id: i.interaction.id, client_n

我正在
Vue Js 2.0
中构建一个小应用程序,尝试过滤数组格式的元素,如果元素是单字符串,我将格式化如下:

const search = this.search_by_name.toLowerCase()
const searchContact = this.search_by_contact.toLowerCase()
return this.meetings
    .map(i => ({
        id: i.interaction.id,
        client_name: i.client.name,
        contactName: i.contacts_association,
    }))
    .filter((item) =>
        item.client_name.toLowerCase().includes(search)
    )
我想要
item.contactName.first\u name.toLowerCase().includes(searchContact)
但在本例中,
联系人\u关联
采用数组格式,返回错误:

TypeError:item.contactName.toLowerCase不是函数

我的
联系人协会
格式如下:

"contacts_association":[
    {
        "id":431,
        "first_name":"Nikunj",
        "last_name":"Doshi",
        "address":"602-603, 6th Floor, Dalamal House,Nariman Point",
        "city":"Mumbai",
        "state":"Maharashtra",
        "country":"India",
        "pivot":
            {
                "interaction_id":139,
                "contact_id":431,
                "company_id":160,
                "created_at":"2017-09-23 16:42:56",
                "updated_at":"2017-09-23 16:42:56"
            },
        "company":[
            {
                "id":160,
                "name":"Bay Capital Investment Managers Pvt Ltd",
                "address":"602-603, 6th Floor, Dalamal House,Nariman Point",
                "city":"Mumbai",
                "state":"Maharashtra",
                "country":"India",
                "type":"Investor",
                "sub_type":"FII",
                "is_client":0,
            }
        ]
    }
    {
        "id":431,
        "first_name":"Vikash",
        "last_name":"Kumar",
        "address":"602-603, 6th Floor, Dalamal House,Nariman Point",
        "city":"Mumbai",
        "state":"Maharashtra",
        "country":"India",
        "pivot":
            {
                "interaction_id":139,
                "contact_id":431,
                "company_id":160,
                "created_at":"2017-09-23 16:42:56",
                "updated_at":"2017-09-23 16:42:56"
            },
        "company":[
            {
                "id":160,
                "name":"Investment Managers Pvt Ltd",
                "address":"Nariman Point",
                "city":"Mumbai",
                "state":"Maharashtra",
                "country":"India",
                "type":"Investor",
                "sub_type":"FII",
                "is_client":0,
            }
        ]
    }
]

我想使用带有
名字和
姓氏的过滤器,请帮我解决这个问题。

所以基本上你是说
联系人姓名是一个联系人数组,而不是一个,您想将
contactName
中至少有一个联系人的所有会议与
searchContact
中的姓名匹配吗

试试这个(未经测试):

.filter(项=>
item.client_name.toLowerCase().includes(搜索)&&
item.contactName.some(c=>
(c.first_name+“”+c.last_name).toLowerCase().includes(searchContact)
)
)

此外,我还应该指出,分别为
contactName
client\u name
混合使用和是令人困惑的。挑一个

那么基本上你是说
contactName
是一个联系人数组,而不是一个,你想将所有在
contactName
中至少有一个联系人的会议与
searchContact
中的姓名匹配

试试这个(未经测试):

.filter(项=>
item.client_name.toLowerCase().includes(搜索)&&
item.contactName.some(c=>
(c.first_name+“”+c.last_name).toLowerCase().includes(searchContact)
)
)

此外,我还应该指出,分别为
contactName
client\u name
混合使用和是令人困惑的。挑一个

您是否可以与我们共享整个数据对象“this.meetings”,因为我不确定您是否需要首先为筛选器映射任何内容,如果我有整个数据,我可以更进一步。您是否可以与我们共享整个数据对象“this.meetings”,因为我不确定您是否需要首先为筛选器映射任何内容,如果我有完整的数据,我可以更进一步。谢谢你的建议。这很有帮助。谢谢你的建议。这有帮助。