const util = require('util'); var structure = { root: { path: '/main1', nodes: { node1: { path: 'node1', }, node2: { path: 'node2', nodes: { subnode1: { path: 'subnode1', }, subnode2: { path: 'subnode2', }, subnode3: { path: 'subnode3', }, }, }, node3: { path: 'node3', }, }, }, }; var setName = (element) => { if (element.nodes != undefined) { Object.keys(element.nodes).forEach(node => { const nodeElem = element.nodes[node]; nodeElem.name = (element.name || element.path )+ "/" + nodeElem.path; setName(element.nodes[node]) }); } }; setName(structure.root); console.log(util.inspect(structure, { depth: 100 }));