注意:我在 lodash 下提出了这个问题,因为我很确定它可以帮助我很好地解决这个问题,但我现在还没有把它放在首位
我有一个描述不同用户角色及其权限的对象;
我将定义“像这样”的 10-15 个角色(这并不反映应用程序代码,而是问题本身):
var role1 = {
views: {
v1: {access: true},
v2: {access: false},
v#: {access: false}
}
}
var role2 = {
views: {
v1: {access: false},
v2: {access: true},
v3: {access: true},
}
}
连接的用户将拥有多个角色;在该示例中,它可能是['role1', 'role2']
,因此我需要构造一个permissions
对象,该对象将是所有用户角色中定义的所有道具的组合。
它基本上是基于白名单的,所有“真”属性都应该覆盖任何被定义为假的东西。因此,预期的结果应该是:
permissions = {
views: {
v1: {access: true},
v2: {access: true},
v2: {access: true}
}
}
我不太确定如何在不依赖疯狂嵌套循环的情况下解决这个问题
这是 JSBin 的起点:http://jsbin.com/usaQejOJ/1/edit?js, console
谢谢你的帮助!