Skip to content

Instantly share code, notes, and snippets.

@emmaly
Created November 6, 2021 12:13
Show Gist options
  • Save emmaly/ed736232e1234248d0bf02f55963bf28 to your computer and use it in GitHub Desktop.
Save emmaly/ed736232e1234248d0bf02f55963bf28 to your computer and use it in GitHub Desktop.
Colon-delimited tree setting thingy in JavaScript
let data = {};
const setter = (o, p, v) => {
if (typeof p === "string") {
return setter(o, p.split(/\s*:\s*/), v);
}
if (p.length === 1) {
o[p[0]] = v;
return o;
}
const k = p.shift();
o[k] = setter(o[k] ? o[k] : {}, p, v);
return o;
};
setter(data, "name:first", "Fred");
setter(data, "name:last", "Flintstone");
setter(data, "phone:personal:mobile", "555-1212");
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment