Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/366.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 数组中的部分字符串匹配_Javascript_Vue.js - Fatal编程技术网

Javascript 数组中的部分字符串匹配

Javascript 数组中的部分字符串匹配,javascript,vue.js,Javascript,Vue.js,我有一个包含一些公司数据的对象数组。我已经根据用户选择的成员类型筛选了数据,然后我想根据公司名称进一步筛选数据。这必须是部分匹配,例如,如果用户输入“Go”或“Go”,谷歌将匹配该公司。目前,我已经设置好了,所以它只会匹配全名“谷歌”,例如 这是我的密码: const数据=[ { “公司名称”:“HP”, “成员类型”:“完整” }, { “公司名称”:“微软”, “成员类型”:“完整” }, { “公司名称”:“Slack”, “会员类型”:“市场从业者” }, { “公司名称”:“Fig

我有一个包含一些公司数据的对象数组。我已经根据用户选择的成员类型筛选了数据,然后我想根据公司名称进一步筛选数据。这必须是部分匹配,例如,如果用户输入“Go”或“Go”,谷歌将匹配该公司。目前,我已经设置好了,所以它只会匹配全名“谷歌”,例如

这是我的密码:

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
感谢现在有意义的家伙们