object-deep
Version:
Deep object traversing
80 lines (68 loc) • 1.37 kB
Markdown
Deep object traversal helper
Alias of lodash get
Alias of lodash set
Calls a callback function for each end-item found in an object
```js
const objectDeep = require('object-deep');
const o = {
journeys: [{
passengers: [{
name: 'John'
}, {
name: 'Alice'
}]
}, {
passengers: [{
name: 'Igor'
}]
}]
};
objectDeep.each(o, (value, path) => {
console.log(path, value);
/* outputs:
journeys.0.passengers.0.name John
journeys.0.passengers.1.name Alice
journeys.1.passengers.0.name Igor
*/
});
```
executes a callback for every item occuring in the path
```js
const objectDeep = require('object-deep');
const o = {
journeys: [{
passengers: [{
name: 'John'
}, {
name: 'Alice'
}]
}, {
passengers: [{
name: 'Igor'
}]
}]
};
objectDeep.eachPath(o, 'journeys.passengers.name', (name) => {
console.log(name);
/* outputs:
John
Alice
Igor
*/
})
```
```js
const names = objectDeep.mapPath(o, 'journeys.passengers.name');
//John, Alice, Igor
```
```js
objectDeep.deletePath(o, 'journeys.passengers.name');
o.journeys[0].passengers[0].should.not.contain.keys(['name']);
```