/*jslint plusplus: true */
/*global console */
/*
* Output:
*
* a
* /- a1
* /- a11
* /- a111
* /- a112
* /- a2
*
*/
(function () {
"use strict";
var data = {
'a': ['a1', 'a2'],
'a1': ['a11'],
'a2': [],
'a11': ['a111', 'a112']
},
parentMap = {},
root,
i;
for (i in data) {
if (data.hasOwnProperty(i)) {
var l = data[i],
j;
for (j = 0; j < l.length; j++) {
parentMap[l[j]] = i;
}
}
}
//console.log('parentMap', parentMap);
for (i in data) {
if (data.hasOwnProperty(i)) {
if (!parentMap.hasOwnProperty(i)) {
root = i;
break;
}
}
}
function printStruct(elem, level) {
console.log(new Array(level + 1).join(' ') + (level === 0 ? '' : '/- ') + elem);
if (data.hasOwnProperty(elem)) {
data[elem].forEach(function (child) {
printStruct(child, level + 1);
});
}
}
printStruct(root, 0);
}());