find or check all paths/values to a key/prop in array of objects or object - when unknown full path to a prop/key
npm install nested-prop-paths!Actively Maintained
!Travis (.com)

- find all nested paths in an object for a given key/prop
- find all paths to a given value in an object
``bash`
npm install nested-prop-paths -P
Require nested-property:
`js`
var propPaths = require("nested-prop-paths").propPaths;
var = propPaths(data, "prop");
see an example output run :
`js`
const runExample = require("nested-prop-paths").runExample;
console.log(runExample());
Try with mocked data = obj1
`json `
{
"id": "100",
"type": {
"services": "nice",
"id": "200"
},
"validations": [
{
"id": "300",
"name": "John",
"selection": {
"id": "400",
"values": {
"name": "Blob"
}
}
},
{
"id": "500",
"name": "Bill",
"selection": {
"values": {
"id": "600",
"name": "Bob"
}
}
}
]
}
`js`
const propPaths = require("nested-prop-paths").propPaths;
const results = propPaths(obj1,'id');` results
generated keys for prop 'id':
[ [ 'id' ],
[ 'type', 'id' ],
[ 'validations', '0', 'id' ],
[ 'validations', '0', 'selection', 'id' ],
[ 'validations', '1', 'id' ],
[ 'validations', '1', 'selection', 'values', 'id' ] ]
` get values from paths
`js`
const getVals = require("neste-prop-paths").getVals;
console.log(getVals(result,obj1));
``
getVals yields :
[ '100', '200', '300', '400', '500', '600' ]
Try a sub node in mock: obj2
``
obj2 nested obj2.id.id: { id:
[ { name: 'John', selection: [Object] },
{ name: 'Bill', selection: [Object] } ] }
The nested obj propkey 'selection' exists, but we expect hasOwnProperty == false which returns false
'propPaths' returns the path(s) to prop/key 'selection' as
``
[ [ 'id', '0', 'selection' ], [ 'id', '1', 'selection' ] ]
also find
We also can 'find' a value
`js`
import {propPaths, getVals, find} from "nested-prop-paths";
console.log(find(obj1,'400'));
```
to get paths(s) for all values of '400' in obj1
[ 'validations', '0', 'selection', 'id' ]
MIT