Create functions for use with functional methods like map
, reduce
,
filter
, etc. that get object properties without need of anonymous wrappers.
$ component install timoxley/get
See Components
$ npm install timoxley-get
Sorry for namespaced package, all good names taken.
Horrible anonymous wrapper is required to map the length
property.
['apple', 'banana', 'pineapple'].map(function(str) {
return str.length
})
// => [5, 6, 9]
Wow. Much cleaner.
['apple', 'banana', 'pineapple'].map(get('length'))
// => [5, 6, 9]
// Calls the 'italics' method on each supplied item
['apple', 'banana', 'pineapple'].map(get('italics'))
// => ['<i>apple</i>', '<i>banana</i>', '<i>pineapple</i>']
// Calls the 'substr' method, passing in arguments
['apple', 'banana', 'pineapple'].map(get('substr', 0, 1))
// => ['a', 'b', 'p']
Takes a property name, prop
along with any number of additional
arguments, and returns a function, that takes an object of any type, and
returns the value of prop
on that object. If prop
is a method, the
returned value with be the result of evaluating that method, passing in
the the additional arguments.
Turns out this is hard to describe.
MIT