const filterGenerator = (objects: { [key: string]: any }[], field: string) => { return objects .flatMap((obj) => { if (obj[field]) { if (Array.isArray(obj[field])) { return obj[field].map((v) => ({ label: v?.name || v, value: v?.["@id"] || v, })); } return { label: obj[field]?.name || obj[field], value: obj[field]?.["@id"] || obj[field], }; } return; }) .filter( (value, index, self) => value?.label && value?.value && index === self.findIndex( (t) => t?.label === value?.label && t?.value === value?.value, ), ); }; export default filterGenerator;