Skip to content

Repository files navigation

to-function

Convert property access strings into functions

Installation

$ component install component/to-function

Examples

vartoFunction=require('to-function');varfn=toFunction('name.first');varuser={name: {first: 'Tobi'}};fn(user);// => "Tobi"

Dot access

var_=require('..');varusers=[{name: {first: 'Tobi'}},{name: {first: 'Loki'}},{name: {first: 'Jane'}},{name: {first: 'Manny'}}];varshort=users.map(_('name.first'));console.log(short);// => [ 'Tobi', 'Loki', 'Jane', 'Manny' ]

Equality

var_=require('..');vartobi={name: {first: 'Tobi'},age: 2};varloki={name: {first: 'Loki'},age: 2};varjane={name: {first: 'Jane'},age: 6};varusers=[tobi,loki,jane];varuser=users.filter(_(loki)).pop();console.log(user);// => { name: { first: 'Loki' }, age: 2 }

Expressions

var_=require('..');varusers=[{name: {first: 'Tobi'},age: 2},{name: {first: 'Loki'},age: 2},{name: {first: 'Jane'},age: 6}];varoldPets=users.filter(_('age > 2 && age < 10'));console.log(oldPets);// => [ { name: { first: 'Jane' }, age: 6 } ]

Regular expressions

var_=require('..');varusers=['Tobi','Loki','Jane'];vart=users.filter(_(/^T/));console.log(t);// => [ 'Tobi' ]

Nesting

var_=require('..');varusers=[{name: {first: 'Tobi',last: 'Ferret'},age: 2},{name: {first: 'Loki',last: 'Ferret'},age: 2},{name: {first: 'Luna',last: 'Cat'},age: 2},{name: {first: 'Manny',last: 'Cat'},age: 3}];// single-keyvarquery=_({name: {last: 'Cat'}});console.log(users.filter(query));// => [ { name: { first: 'Luna', last: 'Cat' }, age: 2 },// { name: { first: 'Manny', last: 'Cat' }, age: 3 } ]// multi-keyvarquery=_({name: {first: /^L/,last: 'Cat'}});console.log(users.filter(query));// => [ { name: { first: 'Luna', last: 'Cat' }, age: 2 } ]// multi-levelvarquery=_({name: {last: 'Cat'},age: 3});console.log(users.filter(query));// => [ { name: { first: 'Manny', last: 'Cat' }, age: 3 } ]

License

MIT

About

Convert property access strings to a function ("user.name.first" etc)

Resources

Stars

63 stars

Watchers

5 watching

Forks

Releases

Packages

Used by

Contributors

Languages