View source Improve this doc

# `filter`
filter in module `ng`

## Description

Selects a subset of items from `array` and returns it as a new array.

Note: This function is used to augment the `Array` type in Angular expressions. See `ng.$filter` for more information about Angular arrays.

## Usage

### In HTML Template Binding

`{{ filter_expression | filter:expression:comparator }}`

### In JavaScript

`$filter('filter')(array, expression, comparator)`

#### Parameters

Param | Type | Details
--- | --- | ---
array | Array | The source array.

expression

string Object function()

The predicate to be used for selecting items from `array`.

Can be one of:

- `string`: Predicate that results in a substring match using the value of `expression` string. All strings or objects with string properties in `array` that contain this string will be returned. The predicate can be negated by prefixing the string with `!`.

- `Object`: A pattern object can be used to filter specific properties on objects contained by `array`. For example `{name:"M", phone:"1"}` predicate will return an array of items which have property `name` containing "M" and property `phone` containing "1". A special property name `$` can be used (as in `{$:"text"}`) to accept a match against any property of the object. That's equivalent to the simple substring match with a `string` as described above.

- `function`: A predicate function can be used to write arbitrary filters. The function is called for each element of `array`. The final result is an array of those elements that the predicate returned true for.

comparator

function(expected, actual) true undefined

Comparator which is used in determining if the expected value (from the filter expression) and actual value (from the object in the array) should be considered a match.

Can be one of:

- `function(expected, actual)`: The function will be given the object value and the predicate value to compare and should return true if the item should be included in filtered result.

- `true`: A shorthand for `function(expected, actual) { return angular.equals(expected, actual)}`. this is essentially strict comparison of expected and actual.

- `false|undefined`: A short hand for a function which will look for a substring match in case insensitive way.

## Example

#### Source

## Demo