Skip to content

Repository files navigation

Enumerable

Enumerable mixin.

users.map('friends').select('age > 20').map('name.first').select(/^T/)

Installation

$ component install component/enumerable

Implementation

Nearly all methods utilize the to-function component, which converts the argument passed to a function. For example .map('name.first') expands to a function effectively defined as return obj.name.first, likewise .select(/^Tobi/) expands to return /^Tobi/.test(str) and so on. For details check out to-function's Readme and familiarize yourself since all of that is applicable to Enumerable.

API

mixin()

Mixin to obj.

varEnumerable=require('enumerable');Enumerable(Something.prototype);

.each(fn:Function)

Iterate each value and invoke fn(val, i).

users.each(function(val,i){})

.map(fn:Function)

Map each return value from fn(val, i).

Passing a callback function:

users.map(function(user){returnuser.name.first})

Passing a property string:

users.map('name.first')

.select(fn:Function|String)

Select all values that return a truthy value of fn(val, i).

users.select(function(user){returnuser.age>20})

With a property:

items.select('complete')

.unique()

Select all unique values.

nums.unique()

.reject(fn:Function|String|Mixed)

Reject all values that return a truthy value of fn(val, i).

Rejecting using a callback:

users.reject(function(user){returnuser.age<20})

Rejecting with a property:

items.reject('complete')

Rejecting values via ==:

data.reject(null)users.reject(toni)

.compact()

Reject null and undefined.

[1,null,5,undefined].compact()// => [1,5]

.find(fn:Function)

Return the first value when fn(val, i) is truthy, otherwise return undefined.

users.find(function(user){returnuser.role=='admin'})

.findLast(fn:Function)

Return the last value when fn(val, i) is truthy, otherwise return undefined.

users.findLast(function(user){returnuser.role=='admin'})

.none(fn:Function|String)

Assert that none of the invocations of fn(val, i) are truthy.

For example ensuring that no pets are admins:

pets.none(function(p){returnp.admin})pets.none('admin')

.any(fn:Function)

Assert that at least one invocation of fn(val, i) is truthy.

For example checking to see if any pets are ferrets:

pets.any(function(pet){returnpet.species=='ferret'})

.count(fn:Function)

Count the number of times fn(val, i) returns true.

varn=pets.count(function(pet){returnpet.species=='ferret'})

.indexOf(obj:Mixed)

Determine the indexof obj or return -1.

.has(obj:Mixed)

Check if obj is present in this enumerable.

.reduce(fn:Function, [val]:Mixed)

Reduce with fn(accumulator, val, i) using optional init value defaulting to the first enumerable value.

.max(fn:Function|String)

Determine the max value.

With a callback function:

pets.max(function(pet){returnpet.age})

With property strings:

pets.max('age')

With immediate values:

nums.max()

.sum(fn:Function|String)

Determine the sum.

With a callback function:

pets.sum(function(pet){returnpet.age})

With property strings:

pets.sum('age')

With immediate values:

nums.sum()

.first([n]:Number|Function)

Return the first value, or first n values.

.last([n]:Number|Function)

Return the last value, or last n values.

.inGroupsOf(n:Number)

Return values in groups of n.

.at(i:Number)

Return the value at the given index.

.value()

Return the enumerable value.

License

MIT

About

Enumerable mixin

Resources

Stars

58 stars

Watchers

7 watching

Forks

Releases

Packages

Used by

Contributors

Languages