【发布时间】:2020-07-06 09:19:14
【问题描述】:
我有一张包含学生详细信息的表格,我使用 v-for 从数据库获取。 我正在尝试根据字段值过滤表。对于初学者,我在表格上方有 3 个输入,每个输入都由 v-model 绑定,以更新过滤器数组中的相应键值对。 这是我循环遍历的计算出的 studentsList 的代码。
computed:{
filteredStudentList:function(){
console.log(this.lastNameSearch);
let filteredStudents =[]
let filtersArray = [
['lastName',this.lastNameSearch ],
['firstName',this.firstNameSearch],
['studentID',this.studentIDSearch ],
///avoiding comparing to null or empty searchBox
]
let filteredFiltersArray = filtersArray.filter(pair=>{
return pair[1] !=null
})
let dFilteredFiltersArray = filteredFiltersArray.filter(pair=>{
return pair[1] !=""
})
console.log(filtersArray);
console.log(dFilteredFiltersArray);
// add students to the filtered array, if they are not there already and all the searchBoxes are empty
this.studentsList.forEach(student=>{
if (dFilteredFiltersArray.length==0 && filteredStudents.indexOf(student)==-1){
filteredStudents.push(student)
}else{
dFilteredFiltersArray.forEach(([q,a])=>{
Object.entries(student).forEach(([k,v])=>{
if( k==q){
if(!v.match(a)){
console.log(student);
filteredStudents.filter(i=>{
return i !=student
})
}
}
})
})
}
})
console.log(filteredStudents);
return filteredStudents
}
},
现在,当我运行它时,无论我在搜索框中输入什么字母,它都会过滤掉所有学生。 谁能帮我弄清楚我的代码有什么问题?
【问题讨论】:
标签: javascript vue.js v-for