Сначала нужно отфильтровать по размеру, а затем по платформе. В вашем текущем коде операторы return, обрабатывающие функцию фильтра по размеру, делают код после того, как он недоступен.
Попробуйте что-то вроде этого:
filteredProjects: function () {
var vm = this;
var size = vm.selectedSize;
var platform = vm.selectedPlatform;
var filteredProjects;
// first, filter by size, saving the results to
// the variable filteredProjects
if (size === "All") {
filteredProjects = vm.projects;
} else {
filteredProjects = vm.projects.filter(function (project) {
return project.size === size;
});
}
// then, continue filtering `filteredProjects`, using the platform
if (platform === "All") {
filteredProjects = filteredProjects;
} else {
filteredProjects = filteredProjects.filter(function (project) {
return project.platform === platform;
});
}
return filteredProjects
}
Я также изменяю операторы else if
на просто else
. Переменные могут быть равны All
или нет - нет необходимости явно указывать альтернативу.