Как создать «дерево» с элементов объэкта?
А что вам мешает использовать встроенную функцию JSON.stringify? https://jsfiddle.net/3uwjehnu/UPD: Набросал рекурсивный алгоритм, который вам нужен https://jsfiddle.net/rockon404/h41mw5t5/
Форматирование есть готовое, в JSON.stringifyconsole.log(
  JSON.stringify(data, null, "\t")
)https://jsfiddle.net/dycfxk3n/результат:
Если вам не нужен JSON на выходе, и обязательно нужно избавиться от скобочек - есть replace()console.log(
  JSON.stringify(data, null, "\t")
   .replace(/[\"\{\}]/g, '')
)https://jsfiddle.net/dycfxk3n/1результат:
Если обязательно нужно вывести дефисы перед текстом, опишите по какой логике они у вас выводятся, а то в примере то один, то четыре, то шесть
...нипанятна.