私はこのような配列を持っています
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に表示されるその値をfalseからtrueに更新するための関数が必要です
どこから始めればいいのかわからないので、コードはそれほど多くありません。どんな助けでも素晴らしいでしょう、ありがとう
問題の1つは、netireロール名が@からのみ開始されていることです。これは、その文字列を切り取って比較する必要があることを意味しますか?
この機能を試してみましたが、うまくいきません
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]
コメントを追加