rrr v0.1.1
rrr
Your new recursive utility belt!
Usage
See examples in the API below.
Installation
npm install --save rrrAPI
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');
// 42access 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: falsemap 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: falseWith :heart: from quentinrossetti