Important: This documentation covers Yarn 1 (Classic).
For Yarn 2+ docs and migration guide, see yarnpkg.com.

Package detail

array.filter

wilmoore267MIT0.1.6

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.

alternative, array, array-filter, array.filter, arrayfilter, bracket, bracket-notation, compatible, compound, curried, dot, dot-notation, es3, filter, function, functional, higher-order, lodash.filter, lodash.filter alternative, nested, path, pathstring, pathval, point free, point-free, pointfree, predicate, query, query document, query object, regexp, regular expression, regular-expression, regularexpression, stringpath, unary

readme

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 (allows for pointfree programming style).

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

changelog

Change Log

All notable changes to this project will be documented in this file (keepachangelog.com).

0.1.6 - 2017-02-07

Added

  • postversion npm script

0.1.5 - 2016-03-31

Changed

  • Updated API doc signature from Function|String|Object to Function|RegExp|String|Object.

0.1.4 - 2016-03-01

Changed

  • Updated keywords.

0.1.3 - 2016-03-01

Changed

  • Updated outdated dependencies.

0.1.2 - 2016-01-24

Changed

  • Updated outdated dependencies.

0.1.1 - 2016-01-24

Changed

  • Updated outdated dev dependencies.

0.1.0 - 2016-01-20

Added

  • Initial Version.