rrr
v0.1.1
Published
Your new recursive utility belt!
Downloads
5
Maintainers
Readme
rrr
Your new recursive utility belt!
Usage
See examples in the API below.
Installation
npm install --save rrr
API
The Rrr
class
Start using the library by creating a new Rrr
object. The constructor gets one
argument: the object you want to work with.
var Rrr = require('rrr');
var myCollection = { one: { nestOne: 42 }, two: 'item', three: [ true ] };
var rrrCollection = new Rrr(myCollection);
// You can now use all the methods described in the API!
rrrCollection.access('one.nestOne');
// 42
access new Rrr(collection).access([path], [value])
Access a nested property of the object. The path
is a string representing
the property's path. Use the .
character to identify a level (With both
objects and arrays). When value
is defined the value of the item is set. If
no arguments are specified the collection is returned.
var collection = { one: { nestOne: 42 }, two: 'item', three: [ true, false ] };
var my = new Rrr(collection);
my.access();
// { one: { nestOne: 42 }, two: 'item', three: [ true, false ] }
my.access('one.nestOne');
// 42
my.access('one.nestOne', 1337);
// 1337
my.access('one');
// { nestOne: 1337 }
each new Rrr(collection).each(fn)
Run a function on each item in the collection. The fn
function passed accepts
two parameters (value, key)
. The first is the value and can't be an other
object. The second is a string that represents the path the the item, use
access
method to get the value. This method does not modify the inner
object.
var collection = { one: { nestOne: 42 }, two: 'item', three: [ true, false ] };
new Rrr(collection).each(function (value, key) {
console.log('%s: %s', key, value);
});
// one.nestOne: 42
// two: 'item'
// three.0: true
// three.1: false
map new Rrr(collection).map(fn)
Apply a function on each item in the collection. The fn
function passed
accepts two parameters (value, key)
. The first is the value and can't be an
other object. The second is a string that represents the path the the item,
use access
method to get the value. This method does modify the inner
object. To do so return the new value that you want for your item.
var collection = { one: { nestOne: 42 }, two: 'item', three: [ true, false ] };
var my = new Rrr(collection)
my.map(function (value, key) {
if (typeof val === 'number') {
val++;
return val;
} else {
return val;
}
});
console.log(my)
// one.nestOne: 43
// two: 'item'
// three.0: true
// three.1: false
With :heart: from quentinrossetti