我有两个过滤器,它们无法正常工作。首先,在从列表中选择了一个特定用户之后,尽管注释中设置了某个日期,但不输出任何内容,因此该日期中所有用户的所有日期的所有信息都会显示在注释中。其次,如果我开始更改select中的日期,那么尽管最初选择了某个用户,但所有用户的所有信息将开始显示。下面我给出了这些过滤器的代码。我怎样才能解决这个问题?请告诉我。
selectedUser = null;
users: Array<User>;
notes: Array<Note>;
years: Array<Year>;
filteredNotes = [];
//Filter datas for the selected user
SelectedUser(userId) {
this.selectedUser = this.users.find(el => {
return el.user_id === userId
});
this.filteredNotes = this.notes.filter((note) => note.n_users_id == this.selectedUser.user_id);
}
//Filter data by date selection from the list
onYearSelection(year){
this.filteredNotes = []
this.filteredNotes = this.notes.filter(note => note.years == year);
}
也就是说,我如何组合这些操作。因此,我选择了用户选择所需的日期,并显示了该用户的所有可用信息以及所选的日期。
答案 0 :(得分:0)
this.filteredNotes = this.notes.filter(proj => years.indexOf(proj.year)!= -1)
在ES6中,您可以使用Array.includes
this.years.includes(proj.year)