Create an object by path in JavaScript

Create an object by path in JavaScript

If you've ever dug into more complex usage of mkdir on any Unix flavor, you've probably used the -p option before. It allows you to create a deep path with only one command. Say you wanted to make a directory at /tmp/1/2/3/ but none of those folders existed, you would have to do something mkdir /tmp && mkdir /tmp/1/ ... without -p. With it, it is as simple as mkdir -p /tmp/1/2/3/.

I ran into a problem recently where I need this exact sort of functionality but with JavaScript objects. I'm a fan of the Lodash API and they have something similar to it with the _.get function. It allows you to get path of an object using a string. Using that format as I model, I was able to come up with something fairly straight forward.

You call the function by passing in the target object, a path (string or array format), and the value you want to set at that path.