Name

Array.filter() — return array elements that pass a predicate

Availability

ECMAScript 5

Synopsis

array.filter(predicate)
array.filter(predicate, o)

Arguments

predicate

The function to invoke to determine whether an element of array will be included in the returned array.

o

An optional value on which predicate is invoked.

Returns

A new array containing only those elements of array for which predicate returned true (or a truthy value).

Description

filter() creates a new array and then populates it with the elements of array for which the predicate function returns true (or a truthy value). The filter() method does not modify array itself (though the predicate function may do so).

filter() loops through the indexes of array, in ascending order, and invokes predicate once for each element. For an index i, predicate is invoked with three arguments,

predicate(array[i], i, array)

If predicate returns true or a truthy value, then the element at index i of array is appended to the newly created array. Once filter() has tested each element of array it returns the new array.

See Array.forEach() for further details.

Example

[1,2,3].filter(function(x) { return x > 1; });  // => [2,3]

Get JavaScript: The Definitive Guide, 6th Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.