我有一些这样的数组
roles = ['AnyRulesGo@admin', 'NoRules@admin', 'HowYesNo@history', 'MamaMia@survey'];
我有一些这样的对象
externalLinks = [
{
link: '#',
icon: 'Icon',
translation: 'Home',
role: '@history',
active: false,
visible: false
},
{
link: '#',
icon: 'Task',
translation: 'Tasks',
role: '@task',
active: false,
visible: false
},
{
link: '#',
icon: 'Files',
translation: 'Files',
role: '@admin',
active: true,
visible: false
}
];
我需要一些功能来检查确实值的作用在externaLinks阵列中存在的角色,并更新该值可见在externalLinks从假到真
我没有更多的代码,因为我什至不知道从哪里开始,任何帮助都会很棒,谢谢
问题之一是我完成了仅从@ 开始的角色名称,这意味着我需要剪切该字符串,然后进行比较?
我试过这个功能,但没有运气
function objectsAreSame(x, y) {
var objectsAreSame = true;
for(var propertyName in x) {
if(x[propertyName] !== y[propertyName]) {
objectsAreSame = false;
break;
}
}
return objectsAreSame;
}
您可以使用forEach
循环外部链接。然后使用some
和includes
检查角色是否存在。
roles = ['AnyRulesGo@admin', 'NoRules@admin', 'HowYesNo@history', 'MamaMia@survey'];
externalLinks.forEach((extLink) => {
if(roles.some(role => role.includes(extLink.role))){
extLink.visible = true;
}
})
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句