Примечание: Я подал этот вопрос под 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