JSFiddle - React, Tailwind, and code Playground

by Richard Hunter

JavaScript

function isObject(obj) {
  return typeof obj === "object" && obj !== null && !Array.isArray(obj);
}

const visitObject = (obj) => {
  if (isObject(obj)) {
    return Object.keys(obj).reduce((memo, key) => {
    	return {...memo, [`_${key}`]: { value: visitObject(obj[key]), key, metadata: 'blah'}}
    }, {})

  } else if (Array.isArray(obj)) {
    return obj.map(visitObject);
  }
  return obj;
};
const obj = {
	foo: {
  	name: 'Richard'
  },
  bar: 'bar',
};
const result = visitObject(obj);
console.log(obj, result)