我正在用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)
);
});
},
},
除此搜索功能外,此筛选功能的其他方面都在工作(即点击作业的能力)。
任何帮助都将不胜感激。
2条答案
按热度按时间envsm3lx1#
您的代码似乎可以工作。请检查您的
v-model
指令。第一个
z0qdvdin2#
您可以简单地通过
String.startsWith()
沿着Array.filter()
方法来实现这一点。现场演示**:**
第一个