Access properties of nested objects using dot-path notation.
Dotty makes it easy to programmatically access arbitrarily nested objects and their properties.
Here's a link to the npm page.
npm install dotty
Also see the documentation and example.
vardotty=require("dotty");varobject={a: {b: {x: "y",},c: {x: "z",},},};console.log(dotty.exists(object,"a.b.x"));// trueconsole.log(dotty.exists(object,["a","b","x"]));// trueconsole.log(dotty.exists(object,"a.b.z"));// falseconsole.log(dotty.exists(object,["a","b","z"]));// falseconsole.log(dotty.get(object,"a.b.x"));// "y"console.log(dotty.get(object,["a","b","x"]));// "y"console.log(dotty.get(object,"a.b.z"));// undefinedconsole.log(dotty.get(object,["a","b","z"]));// undefineddotty.put(object,"a.b.hello","hi");dotty.put(object,["a","c","yo"],"sup");console.log(dotty.search(object,"a.b.*"));console.log(dotty.search(object,["a","b","*"]));console.log(dotty.search(object,"a.*.x"));console.log(dotty.search(object,["a","*","x"]));console.log(dotty.search(object,["a","*",/..+/]));console.log(dotty.search(object,"a.b.*",function(value,parent,key){parent[key]=value+"!";}));console.log(dotty.remove(object,"a.b.x"));console.log(dotty.remove(object,"a.b.y"));console.log(dotty.removeSearch(object,"a.*.x"));console.log(dotty.deepKeys(object));console.log(dotty.deepKeys(object,{leavesOnly: true}));console.log(dotty.deepKeys(object,{leavesOnly: true,asStrings: true}));console.log(object);3-clause BSD. A copy is included with the source.
- GitHub (deoxxa)
- Twitter (@deoxxa)
- Email (deoxxa@fknsrs.biz)