Ну, это не бесконечно рекурсивно, но оно работает (я постараюсь улучшить его)
let items = [
{
itemName: 'folder',
info:
{
created:'August 13 2013',
modified: 'December 06 2017'
}
},
{
itemName: 'new folder',
info: 'ruby files'
},
{
itemName: 'documents',
info: ''
}
];
let Keys = [];
items.forEach((el, index) => {
Object.keys(el).forEach(key => {
if(!Keys[index])
Keys[index] = [];
if(typeof el[key] === 'object'){
Keys[index].push(Object.keys(el[key]));
}
else {
Keys[index].push(key);
}
})
});
JSFiddle