JSFiddle - React, Tailwind, and code Playground

JavaScript

var test = {
	one: 'hi',
  two: 'again',
  three: {
  	threeOne: 'oh',
    threeTwo: 'eyup'
  }
};

function deepMap (obj, cb) {
	var out = {};
  
	Object.keys(obj)
  	.forEach(function (k) {
      var val;
      if (obj[k] !== null && typeof obj[k] === 'object') {
        val = deepMap(obj[k], cb);
      } else {
        val = cb(obj[k], k);
      }

      out[k] = val;
    });
  
  return out;
}

var lol = deepMap(test, function (v, k) {
	return v + '_hi';
});

console.log(test, lol)