我有一个名为navLinks
的数组,其中包含一个名为requiredPermissions
的属性;还有一组名为userPermisssion
的权限
现在我希望filter
所有navLink
项基于requiredPermission
道具等于requiredPermission
。
我的方法很简单,但是当它列出来时我很困惑。
R.filter(R.equal(R.prop('requiredPermossions',x), ??? ))
编辑:
例如,假设我们有一个名为NavLinks
的对象数组,它有一个属性userPermisssion =['FIN']
并且有一个列表requiredPermission=['FIN','ADMIN']
。现在我们可以说这个用户拥有匹配权限navlinks的权限。两个变量都是表示角色和权限的字符串列表。
答案 0 :(得分:1)
我想我得到了你需要的东西。管道命令更干净。这是一个做你想做的事的例子:
const navLinks = [
{ requiredPermissions: ['FIN'] },
{ requiredPermissions: ['FIN', 'ADMIN'] },
];
const userPermissions = ['FIN'];
const result = R.filter(
R.pipe(
R.prop('requiredPermissions'),
R.all(R.flip(R.contains)(userPermissions)),
), navLinks);
解释如下: