JSFiddle - React, Tailwind, and code Playground

by David Simpson

JavaScript

console.clear() 

console.time('Traverse JSON')

function traverse(x, prefix) {
  if (Object.prototype.toString.call(x) === '[object Array]') {
    traverseArray(x, prefix)
  } else if ((typeof x === 'object') && (x !== null)) {
    traverseObject(x, prefix)
  } else {
    console.log(`${prefix} = '${x}'`)
    // eval(`${prefix} = \`__XX__ ${x}\``)
  }
}
 
function traverseArray(arr, key) {
  console.log(`${key} = []`)
  // eval(`${key} = []`)
  arr.map((x,index) =>traverse(x, `${key}[${index}]`))
}
 
function traverseObject(obj, prefix) {
  console.log(`${prefix} = {}`)
  // eval(`${prefix} = {}`)
  Object.keys(obj).map(key => {
    traverse(obj[key], prefix === '' ? key : `${prefix}.${key}`)
  });
}

const json = {
  "app": {
    "title": "Aloha",
    "tagline": "The digital workplace",
    "header": {
      "search": "Search",
      "viewSpaces": "View Spaces",
      "messageCenter": "Message Center"
    }
  }
}


let root = {}
traverse(json, 'root')

console.timeEnd('Traverse JSON');