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');