JSFiddle - React, Tailwind, and code Playground
JavaScript
var x = {R1: {A: false, B: true}, R2: {A: true, B: false}, R3: {A: true, B: false, C: true}};
var result = [];
var pick = function (origin, parent) {
var current = [];
for (var k in origin) {
if (origin[k] === true) current.push(k);
if (typeof origin[k] === 'object') pick(origin[k], k);
}
if (current.length > 0) result[parent] = current;
}
pick(x, null) || console.log(result);