I have got two arrays . I am filtering based groupKey with PubSidebar.
apply filter
on array items and on content of each item.
const update = (data, keys) => {
const publicOrGroup = ({ role, value }) =>
role === "public" || keys.includes(value);
return data.filter(publicOrGroup).map(({ content = [], ...item }) => ({
...item,
content: content.filter(publicOrGroup)
}));
};
const groupKey = ["oaDeal", "Journals", "Deposit"];
const PubSidebar = [
{
value: "Dashboard",
role: "public"
},
{
value: "oaDeal",
role: "private",
content: [
{
role: "private",
value: "oaDeal"
}
]
},
{
value: "Journals",
role: "public",
content: [
{
role: "private",
value: "Journals"
},
{
role: "private",
value: "Token"
},
{
role: "private",
value: "policy"
},
{
role: "private",
value: "Deposit"
},
{
role: "public",
value: "test"
}
]
}
];
console.log(update(PubSidebar, groupKey));