GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — GitHub - component/enumerable: Enumerable mixin

BranchesTags
Open more actions menu

Latest commit

 

History

87 Commits
87 Commits

Folders and files

NameName
Last commit message
Last commit date
examples
examples
 
 
test
test
 
 
.gitignore
.gitignore
 
 
History.md
History.md
 
 
Makefile
Makefile
 
 
Readme.md
Readme.md
 
 
component.json
component.json
 
 
index.js
index.js
 
 
package.json
package.json
 
 

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()
  • .each()
  • .map()
  • .select()
  • .unique()
  • .reject()
  • .compact()
  • .find()
  • .findLast()
  • .none()
  • .any()
  • .count()
  • .indexOf()
  • .has()
  • .reduce()
  • .max()
  • .sum()
  • .first()
  • .last()
  • .inGroupsOf()
  • .at()
  • .value()

mixin()

Mixin to obj.

 var Enumerable = 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){
   return user.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){
   return user.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){
   return user.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){
   return user.role == 'admin'
 })

.findLast(fn:Function)

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

 users.findLast(function(user){
   return user.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){ return p.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){
   return pet.species == 'ferret'
 })

.count(fn:Function)

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

 var n = pets.count(function(pet){
   return pet.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){
   return pet.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){
   return pet.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

Readme
Activity
Custom properties

Stars

58 stars

Watchers

7 watching

Forks

10 forks
Report repository

Releases

Packages

Used by

Contributors

Languages

You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.