У меня есть массив объектов.Фильтрация массива объектов на основе выбора раскрывающегося значения.
const itemsList=[{
"id":"123",
"problems":{
"causes":[
{
"SSEnabled": true,
"IndusEnabled": false,
"LogEnabled": true
}
]
}
},
{
"id":"234",
"problems":{
"causes":[
{
"SSEnabled": false,
"IndusEnabled": false,
"LogEnabled": true
}
]
}
}]
У нас есть раскрывающийся список для фильтрации причины SSEnabled.Варианты раскрывающегося списка: «показать», «nofilter», «исключить».
Необходимо отфильтровать список на основе раскрывающегося списка.
Если выбрана опция «show» в раскрывающемся списке «SSEnabled», результатом будет элемент списка, в котором «SSEnabled»: «true» (т. Е. Id: «123»)
Если выбрано «исключение» причины «SSEnabled», то результатом списка должен быть элемент списка, в котором «SSEnabled: false» (т. Е. Id: «234»)
Если выбран «nofilter», он долженигнорировать фильтр.(т.е. id: «123», id: «234»)
filterList(filterType, filterValue, itemsList) {
// filterType : SSEnabled (type of dropdown changed)
//filterValue : show, exclude , no filter
itemsList.map((items) => {
if (
items &&
items.problems &&
items.problems.causes &&
items.problems.causes.length
) {
items.problems.causes.filter((cause) => {
if (cause[filterType] === true && filterValue === 'show') {
return true;
}
if (cause[filterType] === false && filterValue === 'exclude') {
return true;
}
});
}
});
console.log(itemsList, 'filtered List');
}
Но список не фильтруется.Пожалуйста, помогите в фильтрации.