Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/418.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/14.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 “如何筛选结果”;“生活”;用Vue?_Javascript_Json_Vue.js - Fatal编程技术网

Javascript “如何筛选结果”;“生活”;用Vue?

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 }); 如果希望看

我有一个输入v型模型,我想通过产品列表进行筛选

这是我的过滤器。问题是,只有当项目名称与输入完全匹配时,它才起作用。在输入被键入时,如何修改筛选器以查看任何部分匹配

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;