function getKeys(obj) {
return Object.keys(obj).reduce((r, k) => {
r.push(k);
if (Array.isArray(obj[k])) {
obj[k].forEach(itemInArr => {
getKeys(itemInArr);
});
} else if (Object(obj[k]) === obj[k]) {
r.push(...getKeys(obj[k]));
}
return r;
}, []);
}