array.filter

0.1.6 • Public • Published

array.filter

Curried function deriving a new array containing items from given array for which predicate returns true. Supports unary function, RegExp, dot/bracket-notation string path, and compound query object as predicate.

Build Status Code Climate js-standard-style

npm install array.filter --save

You can also use Duo, Bower or download the files manually.

npm stats

npm NPM downloads David

Overview

Similar to [].filter but more functional and compositionally friendly.

Features

  • Supports all dot/bracket-notation string paths supported by selectn.
  • Partial application is directly supported via currying (no need for Function.prototype.bind).
  • ES3, ES5, CommonJS, AMD, and legacy-global compatible.
  • Haskell style Parameter Order.

API Example

Unary function predicate
var filter = require('array.filter')
var numbers = [1, 2, 3, 4, 5]
var even = function (x) { return x % 2 === 0 }
 
filter(even, numbers)
//=> [ 2, 4 ]
RegExp predicate
var filter = require('array.filter')
var hexval = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 'A', 'B', 'C', 'D', 'E', 'F']
var number = /^\d$/
 
filter(number, hexval)
//=> [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9  ]
Dot-notation path string predicate
var filter = require('array.filter')
var messages = [
  { read: true },
  { read: true },
  { read: false }
]
 
filter('read', messages).length
//=> 2
Compound query predicate
var filter = require('array.filter')
var messages = [
  { type: 'sent', meta: { read: true } },
  { type: 'received', meta: { read: true } },
  { type: 'sent', meta: { read: false } }
]
 
filter({ type: 'sent', 'meta.read': false }, messages).length
//=> 1

API

filter(predicate, list)

arguments
  • predicate (Function|RegExp|String|Object) Unary function, RegExp, dot/bracket-notation string path, or compound query object.
  • list (array) Array to evaluate.
returns
  • (array) New array containing items from given array for which predicate returns true.

Alternatives

Contributing

SEE: contributing.md

Licenses

GitHub license

Package Sidebar

Install

npm i array.filter

Weekly Downloads

53

Version

0.1.6

License

MIT

Last publish

Collaborators

  • wilmoore