Javascript “如何筛选结果”;“生活”;用Vue?
我有一个输入v型模型,我想通过产品列表进行筛选 这是我的过滤器。问题是,只有当项目名称与输入完全匹配时,它才起作用。在输入被键入时,如何修改筛选器以查看任何部分匹配Javascript “如何筛选结果”;“生活”;用Vue?,javascript,json,vue.js,Javascript,Json,Vue.js,我有一个输入v型模型,我想通过产品列表进行筛选 这是我的过滤器。问题是,只有当项目名称与输入完全匹配时,它才起作用。在输入被键入时,如何修改筛选器以查看任何部分匹配 Vue.filter('byName', function (data, input) { if(input){ return data.filter(function (item) { return item.name == input }); } return data }); 如果希望看
Vue.filter('byName', function (data, input) {
if(input){
return data.filter(function (item) {
return item.name == input
});
}
return data
});
如果希望看到“实时”结果,则需要对过滤器进行编码,以便它返回部分匹配的项
最简单的方法是使用startsWith()
方法。以下筛选器使用startsWith()
匹配以输入开头的所有项目:
Vue.filter('byName', function (data, input) {
if(input){
return data.filter(function (item) {
// we check if the item's name starts with the input
return item.name.startsWith(input);
});
}
return data
});
过滤器的作用
另一方面,如果希望返回与任意位置匹配的项,而不仅仅是以输入开头的项,则可以使用String.prototype.indexOf()
要执行此操作,请更换
// we check if the item's name starts with the input
return item.name.startsWith(input);
与
不清楚你在问什么。解释“仅匹配产品现场”…您可能正在寻找
String.prototype.indexOf()
或String.prototype.includes()
方法。如果您认为我的解决方案有用,请投票:D。给出帮助您的答案是一种很好的礼仪
// we check if the item's name contains the input as a substring
return item.name.indexOf(input) > -1;