I am trying to filter an array of object values based on an onther input of array of object
Main array and filter logic looks like bellow ,
let mainArr = [{
AREA: "INDIA",
GROUP_DESC: "Group A",
BUSINESS_ID: "1",
SUB_REGION: "KARNATAKA"
}, {
AREA: "INDIA",
GROUP_DESC: "Group A",
BUSINESS_ID: "2",
SUB_REGION: "Tamilnadu"
}, {
AREA: "INDIA",
GROUP_DESC: "Group C",
BUSINESS_ID: "3",
SUB_REGION: "Kerala"
}, {
AREA: "AFRICA",
GROUP_DESC: "Group D",
BUSINESS_ID: "4",
SUB_REGION: "Nigeria"
}];
let arrTofilter = {
AREA: [],
GROUP_DESC: ['Group A', 'Group D'],
BUSINESS_ID: ['2'],
SUB_REGION: []
};
const finalArr = mainArr.filter(({ GROUP_DESC, BUSINESS_ID}) =>
arrTofilter.GROUP_DESC.includes(GROUP_DESC) &&
arrTofilter.BUSINESS_ID.includes(BUSINESS_ID));
Above logic works fine. now I need to remove the && statement ( i dont want to do this since in some stage array will get updated and only contain GROUP_DESC without BUSINESS_ID ) ,
something like bellow
let arrTofilter = {AREA: [], GROUP_DESC: ['Group A','Group D'], BUSINESS_ID: [], SUB_REGION: []};
in this example I have less fields but in my project arrTofilter fields are huge , so how can i dynamically add multiple && statements based on input i receive on arrTofilter array or is there any other array functions i can use?