Большое спасибо @Ashish (для функции Array.filter было открыто много способов фильтрации данных).@Mocas У меня будет больше типов постов позже, ваш метод также работает.
Я закончил этим, одна функция, которая фильтрует тип поста по нажатию кнопки, не уверен, что это лучше, но работаетпо назначению:
Сначала я назначил 3 массива:
rows = []; //the row that contains displaying data on the view
all_rows = []; //the row that contains all the posts
filtered_rows = []; //the row that contains only filtered posts
Функция фильтра:
filter_posts_by_type(type){
this.filtered_rows = this.all_rows;
//reset the filtered_rows with all data first
if(type == "news"){
this.rows = this.filtered_rows.filter((item) => {
return item.type.toLowerCase() == "news";
//set this.rows to contain all posts of type : news
})
}else if(type == "blog"){
this.rows = this.filtered_rows.filter((item) => {
return item.type.toLowerCase() == "blog";
//set this.rows to contain all posts of type : blog
})
}else{
// all types
this.rows = this.filtered_rows.filter((item) => {
return item.type.toLowerCase() == "news" || item.type.toLowerCase() == "blog";
//set this.rows to contain all posts types
})
}
}