Javascript 数组中的部分字符串匹配
我有一个包含一些公司数据的对象数组。我已经根据用户选择的成员类型筛选了数据,然后我想根据公司名称进一步筛选数据。这必须是部分匹配,例如,如果用户输入“Go”或“Go”,谷歌将匹配该公司。目前,我已经设置好了,所以它只会匹配全名“谷歌”,例如 这是我的密码:Javascript 数组中的部分字符串匹配,javascript,vue.js,Javascript,Vue.js,我有一个包含一些公司数据的对象数组。我已经根据用户选择的成员类型筛选了数据,然后我想根据公司名称进一步筛选数据。这必须是部分匹配,例如,如果用户输入“Go”或“Go”,谷歌将匹配该公司。目前,我已经设置好了,所以它只会匹配全名“谷歌”,例如 这是我的密码: const数据=[ { “公司名称”:“HP”, “成员类型”:“完整” }, { “公司名称”:“微软”, “成员类型”:“完整” }, { “公司名称”:“Slack”, “会员类型”:“市场从业者” }, { “公司名称”:“Fig
const数据=[
{
“公司名称”:“HP”,
“成员类型”:“完整”
},
{
“公司名称”:“微软”,
“成员类型”:“完整”
},
{
“公司名称”:“Slack”,
“会员类型”:“市场从业者”
},
{
“公司名称”:“Figma”,
“成员类型”:“供应商”
},
{
“公司名称”:“谷歌”,
“会员类型”:“市场从业者”
},
{
“公司名称”:“Fyber”,
“成员类型”:“完整”
},
{
“公司名称”:“Crunchyroll”,
“成员类型”:“完整”
},
{
“公司名称”:“索尼”,
“成员类型”:“供应商”
},
{
“公司名称”:“Netflix”,
“成员类型”:“供应商”
},
{
“公司名称”:“Facebook”,
“成员类型”:“供应商”
},
{
“公司名称”:“Instagram”,
“会员类型”:“市场从业者”
}
];
var app=新的Vue({
el:'成员目录搜索',
数据:{
拉威尔:数据,
公司类型:“”,
搜索字符串:“”,
},
计算:{
公司:职能(){
//如果设置了memberTypes,则按成员资格类型过滤原始数据
如果(this.companyType!=''){
让filteredMembers=this.rawCompanies.filter(company=>{
return company.member_type===this.companyType
});
如果(this.searchString.length>1){
filteredMembers=filteredMembers.filter(公司=>{
返回company.company_name===this.searchString
});
}
返回过滤器成员;
}否则{
将此文件退还给公司;
}
}
},
方法:{
setCompanyType(类型){
//如果已选择所选类型,则取消设置公司类型,否则设置公司类型
if(type==此.companyType){
this.companyType='';
}否则{
this.companyType=type;
}
},
公司研究(){
//如果字符串长度至少为两个字符减去空格
如果(this.searchString.length>1){
console.log(this.searchString);
}
}
}
});代码>
会员类别:
满满的
市场从业者
供应商
正式会员成绩
-
公司名称:
{{company.company_name}
{{company.member_type}
这必须是部分匹配,例如,如果用户输入“Go”或
谷歌将与之相匹配的公司
然后您必须使用toLowerCase()
规范化数据,并使用includes
让filteredMembers=this.rawCompanies.filter(company=>{
返回company.member_type.toLowerCase().includes(this.companyType.toLowerCase())
});
如果(this.searchString.length>1){
filteredMembers=filteredMembers.filter(公司=>{
返回company.company_name.toLowerCase().includes(this.searchString.toLowerCase())
});
}
这非常有效,谢谢。但我想他只做了精确的匹配?在这里演示的文档中,部分匹配返回false。includes在.filter()中的工作方式是否不同?您看到的是错误的方法,该方法确定是否可以在另一个字符串中找到一个字符串string@Reece这是Array.includes
,您需要String.includes
感谢现在有意义的家伙们