搜索函数仅返回VueJ中的第一个字母

insrf1ej  于 2022-11-17  发布在  Vue.js
关注(0)|答案(2)|浏览(146)

我正在用Vuejs编写一个工作过滤系统,当用户在搜索栏中输入一个字母时,它只过滤第一个字母,而不是整个单词。
假设我有一个包含项目“Banana”的列表。如果用户在搜索栏中键入“Banana”,则会返回项目“Banana”,因为搜索与列表项目匹配。当用户只键入一个单数字母,即“B”时,它会显示所有包含字母B的项目。然而,当另一个字母后跟“Ba”时,它什么也不返回。
下面是导致我出现问题的代码:

<script>
export default {
  data(){
    return{
      searchQuery:'',
      selectedItem: null,
      isVisible: false,
      userArray: [],
    };
  },
  computed: {
    filteredUser() {
      const query = this.searchQuery.toLowerCase();
      if(this.searchQuery === "" ) {
        return this.userArray; 
      }
      return this.userArray.filter((user) => {
        return Object.values(user).some((word) => 
          String(word).toLowerCase().includes(query)
        );
      });
    },
  },

除此搜索功能外,此筛选功能的其他方面都在工作(即点击作业的能力)。
任何帮助都将不胜感激。

envsm3lx

envsm3lx1#

您的代码似乎可以工作。请检查您的v-model指令。
第一个

z0qdvdin

z0qdvdin2#

您可以简单地通过String.startsWith()沿着Array.filter()方法来实现这一点。
现场演示**:**
第一个

相关问题