javascript - vue 2.0 中的自定义过滤器不返回任何内容

标签 javascript vuejs2 vue.js

我正在尝试构建一个自定义过滤器,该过滤器返回与输入匹配的项目。 它适用于简单数组,例如 ['Apple', 'Banana', 'Cupple']。 但不包含对象数组(我试图用它来过滤包含用户信息的数组)

 filterBy: function (arr, value) {
              return arr.filter(function(item) {
                item = item.toString();
                  return item.indexOf(value) > -1;
          })

    },

在我的模板中

            <input v-model="userInput" />

            <h2> Customer: </h2>
            <ul v-for="customer in filterBy(customers, userInput)">
                <li>{{customer.name}}</li>
            </ul>

编辑:这就是数据的样子。

     "data":[{"id":"9","name":"missy","phone":"21324234532"},     
     {"id":"3","name":"Mahama","phone":"345604542"}]

如何获取与给定输入匹配的客户?

最佳答案

假设您的对象数组如下所示:

[
  {"id":"9","name":"missy","phone":"21324234532"},   
  {"id":"3","name":"Mahama","phone":"345604542"},
  {"id":"2","name":"Bernard","phone":"241242542"}
]

正如评论中所指出的:someObject.toString()通常会返回[object Object],因此它对于过滤任何东西来说并不是真正有用。您可能期望 JSON 输出,您可以使用 JSON.stringify(someObject) 获得该输出,但更好、更准确的方法是访问该特定 key 。

您可以像下面这样修改函数:

 filterBy: function (arr, value) {
              return arr.filter(function(item) {
                  return item.name.indexOf(value) > -1;
          })

    },

关于javascript - vue 2.0 中的自定义过滤器不返回任何内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41412943/

相关文章:

typescript - 基于 Vue 类的组件警告 : Property is not defined on the instance but referenced during render

javascript - 使用路线时从 vuex 存储获取特定数据

vuejs2 - 如何在vue2-daterange-picker中实现 “Clear”按钮?

vue.js - 有没有办法让循环在 Vue3 中创建对象?

vue.js - 在 Vue 2 的客户端搜索结果中无法正确读取 aria-live 区域的变化

javascript - Backbone : Update model after change event

javascript - 使用 Node(在 Windows 上)查找 PDF 页数

vue.js - 使用 NuxtLayout 发出事件。 Vue3 Nuxt3

javascript - Plotly JavaScript - donut chart - Hoverinfo,尝试使用数组添加自定义定义 - 我的代码的小问题

JavaScript 删除语句。询问