title: How to deeply map object keys with JavaScript (lodash)?
body: <p><a href="https://lodash.com/docs#mapKeys" rel="noreferrer">https://lodash.com/docs#mapKeys</a></p>
  
  <p>Is it possible to map an Object's keys deeply using Lodash? If not, is there another library providing this functionality (if grouped with other deep iteration and manipulation functionality, even better!)? Else, how would one go about implementing this? The main struggle I see is in identifying pure key/value objects that are safely, deeply iterable. It's easy to throw out Arrays, but it's important to note that the function shouldn't try to deeply iterate on other objects like a regex, for example.</p>
  
  <p>Intended result-</p>
  
  <pre><code>var obj = { a: 2, b: { c: 2, d: { a: 3 } } };
  _.deepMapKeys(obj, function (val, key) {
    return key + '_hi';
  });
  // =&gt; { a_hi: 2, b_hi: { c_hi: 2, d_hi: { a_hi: 3 } } }
  </code></pre>