let data = [
{
label: 'Home',
items: [
{ label: 'Dashboard', icon: 'pi pi-fw pi-home', routerLink: ['/'] },
],
},
{
label: 'UI Components',
items: [
{ label: 'Form Layout', icon: 'pi pi-fw pi-id-card', routerLink: ['/uikit/formlayout'] },
{ label: 'Input', icon: 'pi pi-fw pi-check-square', routerLink: ['/uikit/input'] },
{ label: 'Float Label', icon: 'pi pi-fw pi-bookmark', routerLink: ['/uikit/floatlabel'] },
{ label: 'Invalid State', icon: 'pi pi-fw pi-exclamation-circle', routerLink: ['/uikit/invalidstate'] },
{ label: 'Button', icon: 'pi pi-fw pi-mobile', routerLink: ['/uikit/button'], class: 'rotated-icon' },
{ label: 'Table', icon: 'pi pi-fw pi-table', routerLink: ['/uikit/table'] },
],
},
{
label: 'Blocks',
items: [
{ label: 'List', icon: 'pi pi-fw pi-list', routerLink: ['/uikit/list'] },
{ label: 'Tree', icon: 'pi pi-fw pi-share-alt', routerLink: ['/uikit/tree'] },
{ label: 'Panel', icon: 'pi pi-fw pi-tablet', routerLink: ['/uikit/panel'] },
{ label: 'Google', icon: 'pi pi-fw pi-globe', url: ['https://www.google.com'], target: '_blank' },
{ label: 'Bing', icon: 'pi pi-fw pi-comment', url: ['https://www.bing.com'] },
{
label: 'More',
items: [
{ label: 'List', icon: 'pi pi-fw pi-list', routerLink: ['/uikit/list'] },
{ label: 'Google', icon: 'pi pi-fw pi-globe', url: ['https://www.google.com'], target: '_blank' },
{ label: 'Bing', icon: 'pi pi-fw pi-comment', url: ['https://www.bing.com'] },
],
},
],
},
]
let badges = {
'/uikit/list': '23',
'https://www.google.com': 'NEW',
}
var data2 = JSON.parse(JSON.stringify(data), function (k, v) {
if (k === '') {
return v
}
if (k === 'items' && Array.isArray(v)) {
v.forEach(function (item) {
Object.keys(badges).forEach(function (badge) {
if (Array.isArray(item.routerLink) && item.routerLink.includes(badge)) {
Object.assign(item, { badge: badges[badge] })
}
if (Array.isArray(item.url) && item.url.includes(badge)) {
Object.assign(item, { badge: badges[badge] })
}
})
})
}
return v
})
console.log(JSON.stringify(data2, null, 2))