to-function

2.0.6 • Public • Published

to-function

Convert property access strings into functions

Installation

$ component install component/to-function

Examples

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

Dot access

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

Equality

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

Expressions

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

Regular expressions

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

Nesting

var _ = require('..');
 
var users = [
  { 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-key
 
var query = _({
  name: {
    last: 'Cat'
  }
});
 
console.log(users.filter(query));
// => [ { name: { first: 'Luna', last: 'Cat' }, age: 2 },
//      { name: { first: 'Manny', last: 'Cat' }, age: 3 } ]
 
// multi-key
 
var query = _({
  name: {
    first: /^L/,
    last: 'Cat'
  }
});
 
console.log(users.filter(query));
// => [ { name: { first: 'Luna', last: 'Cat' }, age: 2 } ]
 
// multi-level
 
var query = _({
  name: { last: 'Cat' },
  age: 3
});
 
console.log(users.filter(query));
// => [ { name: { first: 'Manny', last: 'Cat' }, age: 3 } ]

License

MIT

/to-function/

    Package Sidebar

    Install

    npm i to-function

    Weekly Downloads

    73,467

    Version

    2.0.6

    License

    none

    Last publish

    Collaborators

    • tjholowaychuk
    • mattmueller
    • timoxley
    • jonathanong
    • jongleberry
    • tootallnate
    • clintwood
    • thehydroimpulse
    • stephenmathieson
    • trevorgerhardt
    • timaschew
    • hughsk