【发布时间】:2017-10-26 00:50:32
【问题描述】:
我一直在对员工姓名进行过滤,我使用 match() 来比较姓名数组和用户的输入。
这是我的匹配代码
filteredEmp = [];
filterEmployee(name){
let len = this.employeesList.length;
for (var i = 0; i < len; ++i) {
if (this.employeesList[i].name.match(name)) {
this.filteredEmp.push(this.employeesList[i]);
}
}
}
但是当我输入这样的名字时
name = 'Min';
输出不一样
this.filteredEmp =[
0:{id:1,name:"Casper, Mika"},
1:{id:1,name:"Casper, Mika"},
2:{id:3,name:"Ming, Edmund"}
]
预期的输出应该是这样的
this.filteredEmp =[
0:{id:3,name:"Ming, Edmund"}
]
我使用的是 angular 2,所以如果您有可以帮助我过滤过滤器的建议,请这样做。
【问题讨论】:
-
employeesList长什么样子? -
match 与正则表达式一起用作第一个参数。你提供了一个字符串。尝试使用
Array.prototype.indexOf或Array.prototype.find -
与 this.filteredEmp 相同,但只包含过滤后的员工
-
我认为您正在寻找
includes。match用于正则表达式。 -
你真的应该展示实际的代码.....我觉得如果我们看到真实的代码,而不是显示的无效代码,会有一个简单的解释。
标签: javascript arrays angular match