注意:我在lodash下提出了這個問題,因爲我非常確定它可以幫助我很好地解決這個問題,但是並沒有把它放在一邊現在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
感謝您的幫助!
哇,我不能希望答案解釋得那麼好!萬分感謝! –
OMG非常感謝這個答案! – fuzzyvagina